C# 画像表示(縦横比固定+タイマー更新)

LAN経由で現場のディスプレイに資料を表示させておくアイデアの検証用。

何かしらのスクリプトで資料のファイルを自動で開く方法も考えたけど、資料を準備する側が画像に変換する手間をかけれるならプログラムが簡単で済む。

 

 

 

 

C#(ASP.NET Core) 機器管理アプリ

WindowsFormsばかりでASP.NETで動くものを作ったことがなかったので、勉強を兼ねて機器管理アプリを作ってみた。

Program.cs

ApplicationUser.cs

Index.cshtml

Edit.cshtml

Details.cshtml

Delete.cshtml

Create.cshtml

_Layout.cshtml

Login.cshtml

TestTable33.cs

PurchaseType.cs

TestTable33Controller.cs

AccountController.cs

 

C#(ASP.NET Core) SkiaSharp IFormFile(画像)リサイズ

 

.NET メモ

 

・Core系ランタイムの種類

SDK(Runtime含む)
ASP.NET Core Runtime
.NET Desktop Runtime
.NET Runtime(コンソール向け)

・互換性

.NET Framwork1.0(1.0)
.NET Framwork1.1(1.1)
.NET Framwork3.5(2.0, 3.0, 3.5)
.NET Framwork4.8(4, 4,5, 4.6, 4.7, 4.8)
.NET Core2.2(2.0, 2.1, 2.2)
.NET Core3.1(3.0, 3.1)
.NET5(5)
.NET6(6)

・現在サポート中

.NET Framwork3.5(2028年)
.NET Framwork4.8(2031年)
.NET Core3.1(2022年)
.NET5(2022年)
.NET6(2024年)

.NET5でFramworkとCoreが統合された

C# テキストファイル(CSV) インクリメンタルサーチ

もともと複数のエクセルに分割されたデータで、都度ファイルを開いて検索+合計の計算を繰り返していたようなので、テキストファイル(CSV)にまとめ、インクリメンタルサーチで行の絞り込み+選択した行の合計を求める機能を作成した。

DataGridView版

 

C# 勤続年数/年齢 何年何ヶ月の考え方

・勤続年数

特に定めのない計算の場合、端数処理には裁量がある。

年の期間を求める場合、一般的には一年未満の端数を切上げ(1年+1日でも2年)とすることが多く、同じように月の期間を求める場合は、1ヶ月未満の日の端数も切上げて1ヶ月とすることが多い。
https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/1420.htm

ただ、日の端数を切上げたことにより1年を超えてしまい2年になるというような考え方はせず「1年未満の端数は1年に切上げる」だけと考えることが普通。

月の部分については、切上げ(1日でも所属したら1ヶ月とする)以外にも、日付を無視する計算方法もある。

イメージとして切上げは開始月を月初に、終了月を月末にしていて、日付無視は開始月と終了月を同じ日にしていると考えると分かりやすい。

・年齢

年齢の何ヶ月の部分は月末をどうするかが難しい。シンプルなのは先ず、
経過月 = 終了月-開始月
で経過月を算出し、
終了月の日 = 月末 OR 開始月の日 <= 終了月の日
満たさない場合、経過月-1月
という計算式。あるいは、
終了月の日 != 月末 AND 開始月の日 > 終了月の日
満たす場合、経過月-1月

開始月の日 <= 終了月の日
という部分は普通の考え方で、
終了月の日 = 月末
という部分は、開始月、終了月が月末の場合、1/31~2/28など最初の条件を満たさなくても、1ヶ月プラスされる部分があり、この場合、開始月側は何日であっても問題ないので終了月側だけ月末かどうか判断している。

ただ、月末同士で1ヶ月と考える方が自然ではあるけど、当然、
7/31-8/30で1ヶ月判定なし
8/31-9/30で1ヶ月判定あり
というよう結果もあるので少し気持ち悪さも残る。

・当年度末の勤続年数/年齢

時々出てくる当年度というのはだいたい4月~3月の期間で、会社によって締日が月末ではない場合もあり、例えば20日締の場合など3/21~3/20のようになったりする。先ず、現在の年の3月20日として、もし現在が3月20日以降の場合、現在の年に+1年の3月20日にする。

ちなみに年度末が12/31を指す場合は、現在の年の12月31日とすればいいので特に計算する必要はない。

 

 

 

C# Access(accdb) 接続

C# 文字列からハッシュ値を計算