TSMH’s blog

多趣味人間のメモ

曜日の求め方

何年何月何日 は 何曜日ですか?
についての計算式をメモしたいと思います

この計算について公式化したものがあります
ツェラーの公式」と呼ばれる公式です。

西暦(グレゴリオ暦)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
水曜日です

ということでこんな感じです

-------------------------------------------------------------------------------

参考文献:

nlab.itmedia.co.jp