曜日計算ツールとは?
このツールは、カレンダー上のどんな日付でも何曜日にあたるかを教えてくれます。過去・現在・未来を問いません。自分が生まれた日が何曜日だったのか、歴史的な出来事が起きたのが何曜日か、あるいは将来の締め切りがどの曜日にくるのか——年・月・日を入力するだけで、その場で答えがわかります。計算には、先発グレゴリオ暦を前提とした「ツェラーの公式(ツェラーの合同式)」を用いています。
使い方
まず年を選び、プルダウンから月を選択して、最後に日を入力します。「計算する」を押すと、結果欄に曜日の名前が表示されます。表には、プログラマーや仕組みが気になる方向けに、ツェラーの公式の生の値(\(h\))と、ISO方式の曜日番号(1=月曜日 … 7=日曜日)もあわせて表示されます。
公式の解説
ツェラーの公式は、対応表を使わずに純粋な計算だけで曜日を求めます。1月と2月は前の年の13月・14月として扱うのがポイントで、こうすることでうるう日の処理がシンプルになります。q=日、m=補正後の月、K=西暦年を100で割った余り、J=世紀(西暦年÷100)とすると、公式は次のとおりです。
$$h = \left( q + \left\lfloor \frac{13(m+1)}{5} \right\rfloor + K + \left\lfloor \frac{K}{4} \right\rfloor + \left\lfloor \frac{J}{4} \right\rfloor + 5J \right) \bmod 7$$ここで \(h = 0\) が土曜日、1 が日曜日、そして 6=金曜日まで続きます。
計算例
2020年3月13日を例にとってみましょう。q=13、m=3、年=2020 なので、K=20、J=20 となります。すると
$$h = \left( 13 + \left\lfloor \frac{52}{5} \right\rfloor + 20 + \left\lfloor \frac{20}{4} \right\rfloor + \left\lfloor \frac{20}{4} \right\rfloor + 100 \right) \bmod 7 = (13 + 10 + 20 + 5 + 5 + 100) \bmod 7 = 153 \bmod 7 = 6 = \text{金曜日}$$実際に2020年3月13日は金曜日でした。
よくある質問
1582年より前の古い日付でも使えますか? このツールは先発グレゴリオ暦を使っています。そのため、もともとユリウス暦で記録されていたような非常に古い日付については、歴史上の記録とは曜日が異なる場合があります。
なぜ土曜日が \(h = 0\) なのですか? これは古典的なツェラーの公式がそう定義されているからです。本ツールでは、その値をわかりやすい曜日名に変換して表示しています。
どんな年でも入力できますか? はい、1年から9999年まで入力できます。選んだ月に対して日が正しい範囲内であることだけ確認してください。