始めに

「サマーウォーズ」という映画知っていますか?
この映画の中に、主人公の健二くんが新幹線の中で夏樹先輩の誕生日を聞き即座にその日の曜日をモジュロ演算を使って返すシーンがあり、亀井は


「健二くんとモジュロ演算スッゲェ!」

と大層感動したそうな。
そのモジュロ演算調べてみると「mod」つまり「余り」を計算して曜日を特定しているらしい。そこで、自分の計算力では即座に出来ない亀井はPHPで作ってみたとさ。めでたしめでたし~

モジュロ演算ツェラー公式を用いて誕生の曜日を当てます。

ちなみに6/31などのありえない日付は7/1のように現実にある日付として解釈します

選択してください

しかし、平穏はそう長く続きませんでした。
↑は、1996年1月10日は水曜日なのに計算結果が木曜日となる結果に...

亀井は困りました。何故ならサマーウォーズの誕生日から曜日を当てる方法に書いてある方法をそのままプログラムしており、手計算で確認しても木曜日になるのです。

あーだこーだ試行錯誤していると原因が判明しました。
どうやら、うるう年の1月と2月は正しい曜日よりも1日先の曜日にずれ、2月29日と3月1日が同じ曜日になり3月以降は正しい曜日となるらしいのです。それらを踏まえてもう一度作り直しました。↓

モジュロ演算ツェラー公式を用いて誕生の曜日を当てます。(修正版)

ちなみに6/31などのありえない日付は7/1のように現実にある日付として解釈します

選択してください