いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

西暦Y年M月D日の曜日を求める(1)

 何回かで万年カレンダーの話をしましょう。年月日を入力すれば曜日が分かるサイトがあちこちにあります。どうやって計算しているのか、ということです。方法はひとつではありません。ここで紹介する方法は基本的に『数と図形の話』(岩堀長慶1978岩波科学の本)によっています。ぼくがこの本を初めて読んだのは高校生のときでした。映画「サマーウォーズ」で「夏希先輩の誕生日、1992年7月19日は何曜日か。健二は一瞬で日曜日と……」という場面があったとか。とりあえず今回は「一瞬で」というわけにはいきませんが、まあそういう話です。「曜日を求めるのが数学?」と思う人もいるかも知れません。数学なのです。およそ数学とは無縁そうな所でさえ、数学はメチャクチャ使われています(顔認識とか)。考えてみれば、西暦Y年M月D日を指定して、その日の曜日0~6(日曜は0、月曜は1、……、土曜は6)を計算できればいいわけですから、確かに数学の話です。
 ある意味特別の日、1976年の3月1日を選び、その日の番号をN=1とします(この日は月曜日で、1976年は閏年です)。翌日はN=2、次の日はN=3。まずは1976年3月1日から1年分のNを計算するための公式を導きます(Nが分かれば、7で割って余りを求めればそれが曜日になります)。3月1日から目的の日の月の前の月までに大の月がa回あるとします。例えば目的の日は9月17日だとしましょう。8月まででa=4(3月、5月、7月、8月が大の月)です。大の月、小の月がなく一律30日だったら3月から8月までで30×6日あります。実際にはそのうち大の月がa回あるので、9月1日の番号はN=30×6+a+1と書けます。だから9月17日ならN=30×6+a+17です。大の月の個数aはMの関数ですから、a=g(M)と表せます。なお、1977年の1月、2月はそれぞれ1976年の13月、14月と読み替えることにします。g(M)はMの式でも書けますが(先の本ではガウス記号を使った式だった)、ここでは表で与えておくこととします。

f:id:Inuosann:20190824165532p:plain

例えば11月(M=11)より以前にある大の月の個数は3,5,7,8,10月ですから5個。つまりg(11)=5です。これを使えば

N=30×(M-3)+g(M)+D

となります。これで、1976年3月からの1年間分の番号Nが分かりました。今回はここまでとしておきます。

数と図形の話 (1978年) (岩波科学の本)

数と図形の話 (1978年) (岩波科学の本)

 

  ぼくはこの本を読んで「これが数学、物事を理詰めで考えるということ。きちんと考えれば何だって分かる」と思いました。他にもあみだくじ、平面での点の回転移動など楽しい話題が満載です。