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) 接続

フォルダ整理 メモ

フォルダ分けはファイルを入れるときに迷うことがないぐらいのざっくりで、ファイルの探し方は更新日でソートか、通常検索か、自作検索で見つけるという感じで運用している。

1人の場合はこれで問題ないけど、複数人で利用する共有フォルダの場合、ある程度ルール化する必要がある。業務の種類によって作成するファイルに違いがあり色々な意見がある。

C# ファイル検索+指定秒数でサムネイル作成(FFmpeg)

フォルダの命名規則を決める

・固有名詞(仕入先名、客先名、担当者名など)
・業務名(在庫管理、支払管理など)
・部署名(経理部、製造部など)
・インデックス(ABC…、あ行か行…など)

基本的に命名規則以外のフォルダを作らない。

フォルダの構造を考える

例)
業務>インデックス>名称

支払管理
├ あ行
│ └ あいうえお株式会社
├ か行

例)
部署名>業務名
部署名>固有名詞

全社共通
└ 申請書類
部門別
├ 製造部
│ └ 工程管理
└ 経理部
 ├ 支払管理
 └ Aさん(個人フォルダ)

フォルダの階層構造は変更禁止

一度決めたフォルダ構造は部門長(あるいは担当者)のみ変更可能とする。
より厳格に運用する場合(堅苦しいが)フォルダ構造を台帳化する。

ファイルを置いていいフォルダを決める

部門名フォルダにはファイルを置かない、○階層目まではファイルを置かないなど決め、禁止フォルダの中にファイルを作ると自動で削除するなどする。

フォルダの中身を整理する責任者を決める

個々に決めると大変なので、あるフォルダ以下の中身はAさんが整理するなど決め、定期的に部門長が、整理の目標(ファイル数を減らすなど)を指示する。

ファイルの命名規則を決める

版があがるファイルには必ず、日付やVER/REVを入れる。
(新、新々のようなファイルを作らない)

 

***

(2022年1月)電子帳簿保存法 電子取引データ保存

電子取引(メールやサイトからダウンロード)のデータは送受信ともに電子保存が義務。対象は取引情報(見積書、注文書、請求書、納品書、領収書など)

真実性の確保、可視性の確保が必要。
https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/05.htm

・真実性の確保

方法として、
1.タイムスタンプ付与
2.訂正、削除の履歴が残るシステム
3.事務処理要件を定める
https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/0021006-031.htm
がある。

・可視性の確保

1.日付、金額、取引先を検索条件として設定できること。
2.日付、金額は範囲指定できること。
3.任意の項目の組合せで検索できること。

税務職員による質問検査権に基づく電磁的記録のダウンロードの求めに応じることができるようにしている場合2,3は不要。
https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/pdf/0021005-038.pdf
※P4
実際、ある程度高度な検索ができないと適切な管理ができないので注意。

 

Chrome拡張機能 右クリックから検索

選択した文字列をブログ検索

chrome.contextMenus.createはonInstalled.addListenerで追加しないとエラーになる。chrome.contextMenus.onClicked.addListenerは入れるとダメ。

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

 

C# 文字列をAES暗号化

 

Outlook データファイル 最大サイズ対応

受信トレイのフォルダ構造をそのままにしたい。

ファイル>アカウント設定>データファイル>ファイルの場所を開く
エクスプローラでファイルの場所が開いたら、現在利用しているpstファイルを別名にてコピーする。

コピーしたpstファイルを
ファイル>アカウント設定>データファイル>追加

から追加し、設定から名前を変える。

元の受信トレイのメールを削除する。
最大サイズに達していて削除できない場合、Shiftを押しながら削除する。

削除したら、
ファイル>アカウント設定>データファイル>設定>今すぐ圧縮
を実施すると直ぐにファイルサイズが小さくなる。

VBA Worksheet_Change/SelectionChange

クリックしたセルの値を取得

セルの値の変更をチェック

UserFormからシートのSelectionChangeを拾う場合

 

KING OF TIME、サテライトオフィス、LINE WORKS連携

KING OF TIME

・LINE/DeveloperConsole
https://developers.worksmobile.com/jp/console/

API1.0>API ID>発行

Service API Consumer Key(下段)>発行
トークBotすべてにチェック>発行

トークンの有効期限と自動延長について設定する。
(自動延長を有効)

Server List(ID登録タイプ)>追加
サーバー名:任意
Keyの選択:Server API Consumer Keyで作成したもの

・KoT/勤怠管理画面

設定>その他>オプション
LINE WORKS連携を使用するに変更

設定>その他>オプション
LINE WORKS連携をクリック。

>Developerアカウント:管理者アカウント
>ドメインID:メニュー下にあるDomain ID
>API ID:
>Server API Consumer Key:
>サーバーID:Server ListのID
>サーバー認証キー:Server Listの認証キーでダウンロードするファイル

設定>その他>LINE WORKS連携設定>アカウント設定
対象の人にLINE WORKSのアカウントを登録
初回メッセージ送信を実行。(打刻メッセージの編集が必要な場合実行)

***

基本、出退勤+休憩+外出のみ打刻可能のよう。

サテライトオフィス・ワークフロー

・サテライトオフィスセットアップ画面
https://workflow.sateraito.jp/sateraito/worksmobile/contract/request?hl=ja

必要な情報を入力

>LINE WORKSのドメイン/グループ名
を入力。

・LINE/DeveloperConsole
https://developers.worksmobile.com/jp/console/

SAML Apps>追加
>Application Name:任意
>Description:
>Logo:
>ACS URL:セットアップ画面に記載有り
>SP Issuer(Entity Id):セットアップ画面に記載有り
>Name ID:
>Name ID Format:

次へを実行。

SAML Apps>変更>有効
保存。

SAML Apps>LINE WORKS Identity Provider情報>Certificate>ダウンロード

・サテライトオフィスセットアップ画面

X.509証明書 (Certificate)
にダウンロードしたファイルを開いて貼り付け。

会社名以降必要な情報を入力し、
確認する>お申し込みをする

***

メールが来るので確認する。

C# マウス座標 取得方法の比較