何年何月何日 は 何曜日ですか?
についての計算式をメモしたいと思います
この計算について公式化したものがあります
「ツェラーの公式」と呼ばれる公式です。
西暦(グレゴリオ暦)y年m月d日の曜日を表す
曜日=( d + [ 26(m+1)/10 ] + Y + [ Y/4 ] - 2[ y / 100 ] + [ y / 400 ] ) mod 7
0 → 日
1 → 月
2 → 火
3 → 水
4 → 木
5 → 金
6 → 土
って感じです~「ツェラーの公式」は(適当
まあ「ツェラーの公式」についてネットも多分大量の参考ありますので
ここは軽く(?
今回メモしたいのは別のやり方です
まず、年の部分は西暦の「下2桁」と「下2桁を4で割った商(余りは無視)」を計算します。
2023年の場合
西暦の下2桁 = 23
下2桁を4で割った商 = 5
ただし、1月、2月の場合はその前の年の西暦を使います
(2023年1月は2022年で計算)
次に、月の部分、ここは暗記するしかないですね
1月 : 1
2月 : 4
3月 : 3
4月 : 6
5月 : 1
6月 : 4
7月 : 6
8月 : 2
9月 : 5
10月 : 0
11月 : 3
12月 : 5
って感じです
そして、日はそのままです
最後は計算しましょう
式はこう
[ (年の下2桁) + (下2桁を4で割った商) + (月に対応する数字) + (日) ] % 7
あまりに対応する曜日
1→ 日
2→ 月
3→ 火
4→ 水
5→ 木
6→ 金
0→ 土
2023年09月05日の場合
( 23 + 5 + 5 + 5 ) % 7
= 3
火曜日です
2023年01月01日の場合
( 22 + 5 + 1 + 1 ) % 7
= 1
日曜日です
でも!1990年代だと式はちょっと違うので注意してください
[ (年の下2桁) + (下2桁を4で割った商) + (月に対応する数字) + (日) + (1) ] % 7
1990年代だと後ろに1を足します
1990年01月31日の場合
( 89 + 22 + 1 + 31 + 1 ) % 7
= 4
水曜日です
ということでこんな感じです
-------------------------------------------------------------------------------
参考文献: