ばいおりん の 慣性系相対性理論
曜日計算
天文学と物理学 へ戻る
ばいおりんの日常的物理学文集 へ戻る
2013.01.31
JavaScript sample ( http://www.wind.sannet.ne.jp/alfix/javascript/index.html ) さんより、 サンプルソースをいただきました。
上のカレンダーを2013年3月にしてください。 そして、 3月20日の春分の日に注目してください。 20 とその両隣りの数とその上下の数、 5つをぜんぶ足すと 100 になります。 病院に行くなら、 この5つの日は避けるべきです。 20日の両隣りは急性疾患の患者さんが多く、 20日の1週間前後は慢性疾患の定期通院患者さんが多くて、 待ち時間が長くなるからです。 リゾート温泉に行ってロッカーの鍵を渡されるときも、 なるべく上下左右が開いている所を選んでもらっているじゃないですか。
上のカレンダーをいろんな月にしてみてください。 第1曜日が4日以上である曜日が第5曜日まである月は絶対にありません。
さて、 西暦の年、月、日 からその日が何曜日であるかを求めるのに、 「 ツェラーの公式 」 というのがあります。
求めたい日の年の上2桁 ( 例えば2013年 ならば 20 ) を
、 年の下2桁 ( 例えば2013年 ならば 13 ) を
、 月 を
、 日 を
とします。 ただし、 求めたい日の月が 1月、2月 の場合は、 それぞれ前年の 13月、14月 とします。 ( 例えば2013年2月14日ならば 2012年14月14日 )。 そして、 次の
を求めます。

を 7 で割った余りが、 0 なら土曜日、 1 なら日曜日、 2 なら月曜日、 3 なら火曜日、 4 なら水曜日、 5 なら木曜日、 6 なら金曜日です。
では、 今年のクリスマスイブ
が何曜日になるか求めてみましょう。

したがって、 火曜日になることがわかりました。
続いて、 現在のグレゴリオ暦が始まった
が何曜日だったのか求めてみましょう。

したがって、 金曜日であったことがわかりました。
「 ツェラーの公式 」 の導き方はあらかね次のようなものです。 現在のグレゴリオ暦が西暦0年の3月1日 ( 水 ) から開始されていたと仮定して、 その日から何日目になっているのかを求めます。 ( フェアフィールドの公式の原理 ) また、 西暦年を上下2桁に分けるのは、 フェアフィールドの公式を簡単にするためのテクニックです。 フェアフィールドの公式の導き方に関しましては、 川崎医療福祉大学 医療情報学科 ( http://www.kawasaki-m.ac.jp/mw/hinfo/index.php ) の中の 連載自然の不思議・数理の不思議 の中の 暦の数理.pdf がわかりやすいと思います。 また、 フェアフィールドの公式を簡単にする方法については Wikipedia がお勧めです。 なお、 BASICの曜日計算のプログラムでは、 大矢建正さんのホームページ ( http://www.h6.dion.ne.jp/~ooya/ ) で紹介されているものが素晴らしいと思います。 また、 JavaScript には曜日取得関数が標準装備されていますので、 簡単なプログラムになります。
西暦年が4で割り切れる年は閏年といって1年が366日あります。 閏年には夏期オリンピックが開かれます。 2月は元々他の月と違って短く作られており、 閏年のときには1日増えます。 どうしてそうなったのでしょうか? それは、 昔は1年の始まりが生命の息吹が始まる3月であったため ( 昔はマーチは3月とは言われませんでした。) と、 ローマ帝国初代皇帝アウグスツス ( 8月がオーガストなのは彼の名前に由来します。) の我儘のせいです。 3月は31日、 4月は30日、 5月は31日、 ・ ・ ・ ・ と交互にし、 年末月の2月を閏年でない年は29日にして、 紀元前45年にユリウス暦が始まったのですが、 その後紀元前8年に皇帝アウグスツスが自分の誕生月という理由で8月を31日にして、 さすがに3か月続けて31日はないでしょうということで、 9月と11月の1日をそれぞれ10月と12月に渡し、 年末月の2月を閏年でない年は28日にしてしまったのです。