=====================================          期間内の平日・休日を数えるプログラム             HDayDiff.exe Version 1.2 ===================================== ●概要 【ソフト名】 期間内の平日・休日を数えるプログラム HDayDiff 【登 録 名】 HDayDiffvr.zip 【バイト数】 xxx,xxxバイト 【著作権者】 A.Shimada(島田明雄) 【対応環境】 Windows 7, 8, 10 日本語版 【動作確認】 NEXTGEAR-NOTE i400PA3 (Windows 7 Pro) MB-W700X-SH (Windows 8 Pro) MB-W820X-SH (Windows 10 Pro) 【必要 DLL】 なし 【開発言語】 DelphiXE7 【更 新 日】 2017/8/15 【種 別】 フリーソフトウェア 【サポート】 メールにて 【転載条件】 転載を希望される方は、事前に私宛にメールをください。 ●機能  指定された期間内の平日・休日を数えます。  例:生まれてから今日まで何日経過しているか。    期末までの営業日は何日か。    もういくつ出勤するとお正月か。  あらかじめ定義したボタンで期間の開始、終了の日付を選択できます。  例:今日、誕生日、次の誕生日、来年の元旦、ロンドンオリンピック  休日は祝日の他に任意の日を指定できます。祝日を無視することもできます。  例:夏季休暇、年末、年始、子供の頃の夏休み・冬休み  休む曜日は任意に指定できます。期間も指定できます。  例:日曜日は明治時代から休み。土曜日は入社時から休み    学校は1992年から第2土曜日の休みが始まった    理髪店の人は火曜日休み。近所の酒屋のご主人は木曜日休み  出勤日を指定して休日から除外できます。  例:1999年から2000年にかけてIT業界は出勤  4勤2休(4日出勤、2日休みの繰り返し)なども定義できます。  例:2011年7月から9月は節電のため4勤2休になるかも  実際のところは子供の頃に休んだ日は忘れてしまっているでしょうし、将来、予定外  の休暇も取るでしょうから、だいたいの日数を知って楽しむ(?)ためのプログラム  とお考え下さい。  1601年1月1日から2999年12月31日(江戸時代からスーパージェッターの時代)まで数  えられます。開始日を含めて510,974日です。  ちなみに作成の動機は退職日までの出勤日を数えたかったため(笑)。 ●配布ファイル  HDayDiff.EXE  プログラム本体  Day.TXT 日付の指定ファイル。専用の画面で編集できます。  Specialday.TXT 特別日の定義ファイル例。エディタで編集できます。  Holiday.TXT   祝日の定義ファイル  Syunbun.TXT   春分の日の定義ファイル  Syuubun.TXT   秋分の日の定義ファイル  Syunbun2.js   春分の日ファイル生成に使用したスクリプト(ご参考)  Syuubun2.js   秋分の日ファイル生成に使用したスクリプト(ご参考)  README.TXT   このファイル ●インストール  ダウンロードしたファイルHDayDiffvr.zipを解凍し、専用のフォルダを作って全ての  配布ファイルを入れて下さい。 ●アンインストール  配布ファイルを入れたフォルダを削除して下さい。レジストリは変更していません。  なお、設定ファイルのHDayDiff.INI、日付の指定ファイル、定義ファイルはユーザ毎  のフォルダに作成/コピーしています。完全にアンインストールする場合は下記の  HDayDiffフォルダを削除して下さい。  Windows XPの場合  C:\Documents and Settings\ユーザ名\Local Settings\Application Data\  SHIMAPEE\HDayDiff\  Windows Vista, 7, 8, 10の場合  C:\Users\ユーザ名\AppData\Local\SHIMAPEE\HDayDiff\ ●アップデート  新しいHDayDiffvr.zipを解凍し、内容を全て入れ替えて下さい。なお、ユーザ毎の  フォルダにコピーしたファイルは自動的には入れ替わりません。入れ替えは画面左  上のアイコンをクリックして現れるメニュー[オプション]から行います。  オプション画面の左下のボタン[標準設定]を押すとファイル名を標準に戻し、配布  ファイルを入れたフォルダから標準のファイルをユーザ毎のフォルダにコピーしま  す。ユーザ毎のファイルが更新されている(標準のファイル名で内容が異なる)場  合は自動的に連番を付けてバックアップします。標準設定後、バックアップされた  ファイルを使いたいときは、オプション画面を閉じずに続けて選択して下さい。 ●使用方法 (1)開始日のボタン「この日から」、終了日のボタン「この日まで」を選択すると、そ  の間の日数が計算されます。基本的な使い方はこれだけです。  日付を直接変更しても計算されます。仕様上は1601年1月1日から2999年12月31日まで  指定できます。Windows XPの場合、小さな年には変更しにくいようです。  「開始日を日数に含める」をチェックすると開始日を1日と数えます。  「祝日は休まない」をチェックすると祝日は無視され、休日は特別日ファイルで指定  した日だけになります。  日数が1ヶ月以上の場合、おおよその年月数がヒントで表示されます。また平日、休  日の比率がヒントで表示されます。 (2)ボタン「この日から」、又はボタン「この日まで」を右クリックするとメニューが  現れます。  [上へ移動]    …ボタンを上へ移動します。  [下へ移動]    …ボタンを下へ移動します。  [ボタン表示の追加]…サブメニューで選択した日を追加します。  [ボタン表示の削除]…表示から削除します。定義は削除されません。  [日付の編集]   …日付の編集画面を表示します。定義を追加・削除できます。  日付は次の形式で指定できます。   Today   今日   yyyy/m/d  その日   */m/d   今年のその日   *+n/m/d  今年からn年後のその日   @/m/d   直近のその日。今年、又は来年  なお「今日」は編集、削除できません。  新しい日付のボタンを表示するには、まず[日付の編集]画面で名前と日付の定義を  追加、保存してから、[ボタン表示の追加]のサブメニューでその名前を選びます。  日付の定義を削除、保存すると、対応するボタン表示が自動的に削除されます。  また、日付の名前を変更するとボタン名が変更されます(同じ日付が定義されてい  る場合は文字コードの前の方の名前に変更されます)。 (3)画面左上のアイコンをクリックするとメニューが現れます。  [特別日の編集] …任意の休日を指定する特別日ファイルをエディタで開きます。           休む曜日、休日、休まない日、4勤2休などを記述します。  [祝日の編集]  …祝日ファイルをエディタで開きます。  [春分の日の編集]…春分の日ファイルをエディタで開きます。  [秋分の日の編集]…秋分の日ファイルをエディタで開きます。  [オプション]  …各ファイルを選択できます。個人用に別の名前で保存したファイ           ルを使うときなど。  [ヒント表示]  …使い方のヒントをオフオンします。  [このプログラムについて]…バージョン情報を表示します。  特別日などの記述の形式は各ファイルのコメントを参照して下さい。 ●使用上のヒント (1)ボタン数が多くなった場合やボタン名が長い場合、画面を上下左右に広げて見やす  くできます。画面の大きさ、位置は記憶されます。 (2)画面の空き領域(日付の間の領域など)をダブルクリックすると開始日の年の判定  リストがエディタで開かれ、祝日、休日、休む曜日、及び出勤日を確認できます。  なお、このファイルは"HDayDiffyyyy.txt"の名前でユーザ毎の一時フォルダに残り  ますので手動で削除する必要があります。一時フォルダは通常下記にあります。  Windows XPの場合  C:\Documents and Settings\ユーザ名\Local Settings\Temp  Windows Vista, 7, 8, 10の場合  C:\Users\ユーザ名\AppData\Local\Temp ●注意事項 (1)日数は日付の差分です。すなわちマイナス表示はありません。 (2)使用中に0:00を過ぎても更新されません。HDayDiffを再起動して下さい。 (3)出勤日の指定は休日よりも優先されます。すなわち、出勤日や4勤2休などを指定す  ると土日、祝日であっても休みでなくなります。 (4)「m/nWeek」(m月の第n日曜日の週全部)でm/4Weekを指定した場合、翌月、翌年にま  たがることがあります。 (5)春分の日ファイルと秋分の日ファイルでは1851年から2150年までの日を定義してい  ます。この範囲外の年は3月21日と9月23日としています。正しい日がわかりました  ら追加すると正確さが増します。 ●プログラムの仕組みなど (1)祝日、休日、及び出勤日は510,974バイトの配列に展開しています。休む曜日は曜日  ごとの期間のリストを作成しています。  なお、祝日、休日、及び出勤日のバイトの配列は指定の期間分のみ、必要になったと  きに埋めています。性能向上のためにそうしているのですが、年またがりの休日など  があると遡って展開しなければならないため、内部の処理は少し複雑なことになって  います。  休日かどうかは、まず出勤日の指定があれば確定します。次に休む曜日を探索し、該  当すれば休日。最後に祝日休日を判定します。出勤日優先です。 (2)同梱のSyunbun2.jsとSyuubun2.jsは春分の日ファイルと秋分の日ファイルの生成に  使用したスクリプトです。計算式を記述しています。他の適切なアルゴリズムがあ  れば使用して、春分の日ファイルと秋分の日ファイルを入れ替えて下さい。 ●サポート  プログラムの最新版は本ドキュメント末尾のURL内にあります。  不具合等については本ドキュメント末尾の宛先にメール頂ければできるだけ対処  します。 ●免責  本プログラムの使用により生じた損害に関して作者に責任はないものとします。 ●転載  本プログラムの転載等は自由ですがメールにて連絡をお願い致します。 ●謝辞  祝日や春分の日と秋分の日の計算式を調べるのに参照させて頂きました。  Wikipedia 国民の祝日  こよみのページ http://koyomi.vis.ne.jp/  AddinBox    http://www.h3.dion.ne.jp/~sakatsu/  春分の日と秋分の日の計算式   http://hp.vector.co.jp/authors/VA006522/zatugaku/syunbun.txt  ありがとうございます。 ●改訂歴  バージョン番号は左上のアイコンのクリックメニューから確認できます。  Version 1.2(2017/8/15) 祝日の定義ファイルに山の日を追加。オプション画面の標準設定後、画面を閉じ   ず、ファイル選択できるようにした。  Version 1.1(2011/6/12) 日付の定義数の制限解除。ボタン右クリック位置の修正  Version 1.0(2011/5/22) 公開 ===================================== Copyright(C)2011,2017 A.Shimada(島田明雄) URL http://shimada.my.coocan.jp/ E-Mail akio_dot_shimada@nifty.ne.jp(spam対策) SHIMAPEE(しまぴー) =====================================