見出し画像

万年暦 ツェラーの公式

 ツェラーの公式(Zeller's congruence)とは、西暦の年(y)・月(m)・日(d)から、その日が何曜日であるかを算出する公式です。クリスティアン・ツェラー (Christian Zeller) が考案したので、この名称がついています。ツェラーの公式を数式で表すと、次のようになります。

画像1

 ここで[ ]はガウス記号を表して、[3.14]=3 のように記号内の数を超えない整数を意味します。また、式の最後にある”mod 7”は、7で割った時の余り、つまり剰余を表します。この式の先頭部分には、1つ前の『閏年と公転周期』の記事で書いた、閏年の判定部分が含まれています。hは、0~6の自然数になりますが、これが日曜~土曜に相当します。ただし、1月と2月は前年の13月と14月と考えます。2022年1月1日なら、y=2021、m=13、d=1として計算します。この場合を計算すると、h=6となるので、2022年の元旦は土曜日となります。

 この公式は、大学の情報処理概論(?)の講義で宿題に出ました。課題は、FORTRAN77で万年カレンダーを作るというものでしたが、私は全然分からなかったので、友達が作ったプログラムを見せてもらって、完コピしました。この万年カレンダーの基本となるアルゴリズムが、ツェラーの公式です。

 今なら、この公式の意味もよくわかるし、プログラムも簡単に作れますが、当時の私には手も足も出ませんでした^^;。私にとっては、とても懐かしいアルゴリズムの一つです。

いいなと思ったら応援しよう!