コンピュータが日付の平日を計算する方法
グレゴリオ暦が施行されて以来、すべての日付には正確な曜日が 1 つあり、算術のみで計算できます。カレンダー アプリやルックアップ テーブルは必要ありません。根底にある考え方は、ゼラーの合同式とサカモトの方法によって形式化されたものと同じです。つまり、既知の基準点からの合計日数を数え、そのカウントのモジュロ 7 を計算して平日に到達します。
最新のソフトウェアは古典的なゼラー式を文字通り実行しません。通常、内部で予兆グレゴリオ暦を使用して日数を追跡します。しかし、結果は紙とペンのアルゴリズムが計算するものと数学的に同じです。この一貫性こそが、この電卓、紙の年鑑、そして暗算のトリックがすべて同じ日付の同じ答えに一致する理由なのです。
1日(または2日)シフト、前年比
通常の 1 年は 365 日で、ちょうど 52 週間に 1 日余分に加えたものになります。この残りの日が、固定日付 (たとえば 7 月 4 日) が毎年 1 平日だけ前倒しされる理由です (ある年は火曜日、次の年は水曜日というように)。
うるう年はその定常パターンを打ち破ります。 2 月 29 日が年の途中に挿入されるため、3 月 1 日以降の日付は、前年と比べて 1 平日ではなく 2 平日にジャンプします。 1 月と 2 月の日付は、閏日が実際に経過するまで影響を受けません。
世紀のマークにはさらにしわがあります。100 で割り切れる年は、400 で割り切れない限り、うるう年ではありません。このルールでは、2000 年はうるう年でした。 1900 年はそうではありませんでしたし、2100 年もそうではありません。これは、はるか過去または将来の平日を計算する場合に重要です。
平日の過去の日付を確認する
曜日は日付自体の固定特性であるため、同じ計算が歴史的記録の検証にも機能します。つまり、文書化された出来事が情報源が主張する平日に実際に起こったことを確認したり、遠い祖先が何曜日に生まれたかを割り出したりする場合です。
1582 年より前の日付についての注意点が 1 つあります。グレゴリオ暦改革前に使用されていた暦 (ユリウス暦) は、わずかに異なる閏年規則に基づいて実行されていたため、その切り替え以前の日付の平日の計算は、歴史的記録自体がどの暦を使用していたかによって異なります。
単一の日付を超えて: 発生と平日のカウント
1 つの日付の平日を計算できるようになると、同じ計算からさらに 3 つの有用な質問が得られます。
- Next/previous occurrence — the closest date before or after a given day that falls on a specific weekday, useful for finding "the next Friday" from any starting point.
- 平日を数える — 日付範囲内で特定の平日 (月曜日など) が何回発生するか。これは、給与期間や定期的な会議の日付を数える計算と同じです。
- すべての出現を検索 - 範囲内の特定の平日に該当するすべての日付の完全なリスト。毎週繰り返されるものをスケジュールするのに便利です。
代わりに 2 つの日付間の正確な日数、または目標日付までのカウントダウンが必要な場合は、 デイカウンター それを直接処理します。日付から年、月、または週を加算または減算する場合は、 日付計算機。