hiroto-o's diary

とある大学の大学院博士課程を何とか卒業して、とある金融の仕事をロンドンでしています! リンクはご自由に♪ メールはhiroto_o20[at_mark] hotmail.comまで。([at_mark]は@に置き換えてね)

2009年2月のカレンダー

を見てください。きっと「おっ!」と思うでしょう*1
さっき、ラジオで言ってました。ロケットマン・ショーです。


さてさて、カレンダーがこういう風になるのはあと何年あるでしょーか?、というのが今回のお題。
つまり、2月1日が日曜日で、かつ、閏年でない年を探したい。
因みに1年後の2010年2月1日は経過日数=356日だから、365=52×7+1日後で月曜日。残念でした。
(2009年2月1日から)T年後2月1日までの経過日数Dが7の倍数になればいいんです。ただし閏年は失格です。


この閏年が曲者。経過日数に取り込む必要があります。Wikipedia(http://ja.wikipedia.org/wiki/%E9%96%8F%E5%B9%B4)によると、


西暦年が4で割り切れる年は閏年
ただし、西暦年が100で割り切れる年は平年
ただし、西暦年が400で割り切れる年は閏年

とのこと。例外条件がある。うーん、初っ端から面倒そう。

ただ、閏年は400年周期だということは分かる。更に、

表1
20XX年 21XX年 22XX年 23XX年
00年=○(閏年) 00年=×(平年) 00年=× 00年=×
04年=○ 04年=○ 04年=○ 04年=○
・・・ ・・・ ・・・ ・・・
96(24×4)年=○ 96年=○ 96年=○ 96年=○
閏年=25回 閏年=24回 閏年=24回 閏年=24回

となって、400年間の日数は400×365+25+24+24+24=146097=20871×7となる。
必然か偶然か、400年経つと閏年・曜日の両方が元に戻る。つまり、400年周期で同じカレンダーが繰り返すということです。


以上で、2000年〜2399年を調べれば充分、ということが分かりました。
表1を元に、

I) 2000年〜2099年
II) 2100年〜2199年
III) 2200年〜2299年
IV) 2300年〜2399年

に分けましょう。


I) 2000年〜2099年
この範囲では4の倍数=閏年と考えて良いので話は簡単になります。
条件は


[(2009年2月1日から)T年後2月1日までの経過日数D]=[7の倍数]
2000≦2009+T≦2099より、-9≦T≦90
2009+T≠[4の倍数]

です。
閏年を考えるためにTを4で割った余りに分類します。
T=1,2,3,4,5で考えてみます。

2010年(T=1) 経過日数D=365
2011年(T=2) 経過日数D=365×2
2012年(T=3) 経過日数D=365×3
2013年(T=4) 経過日数D=365×4+1 (前年2012年は閏年)
2014年(T=5) 経過日数D=(365×4+1)+365

となります。
一般化します。nは整数とします。

T=4n+1 経過日数D=(365×4+1)n+365≡5n+1
T=4n+2 経過日数D=(365×4+1)n+365×2≡5n+2
T=4n+3(→2009+T=4(503+n)年より閏年→失格) 経過日数D=(365×4+1)n+365×3≡5n+3
T=4n+4 経過日数D=(365×4+1)n+365×4+1≡5(n+1)

です。ここで、「≡」は、両辺それぞれを7で割った余りが等しいことを意味します。計算には365=52×7+1、365×4+1=208×7+5を使いました。
これ以降は、D≡0となるnを探していきます。nを7で割った商をm、余りをrとします:n=7m+r (r=0,1,2,..,6)
すると、

表2
T=4n+1=28m+4r+1 経過日数D≡5n+1≡5r+1で、D≡0となるのはr=4のみ
T=4n+2=28m+4r+2 経過日数D≡5n+2≡5r+2で、D≡0となるのはr=1のみ
T=4n+4=4(7m+r+1) 経過日数D≡5(n+1)≡5r+5で、D≡0となるのはr=6のみ

と分かります。
つまり、T=28m+17, 28m+6, 28m+28です。-9≦T≦90より、

表3
T=28m+17 T=17, 45, 73。つまり、2026年、2054年、2082年
T=28m+6 T=6, 34, 62, 90。つまり、2015年、2043年、2071年、2099年
T=28m+28 T=0, 28, 56, 84。つまり、2009年、2037年、2065年、2093年

です。意外と多いですね。


II) 2100年〜2199年

ドラえもんの世紀です。2009+T→2100+Tと変更します。
表1から、2009年2月1日から2109年2月1日までの経過日数は365×100+24=5217×7+5です。

これにあわせて、表2を

表4
T=4n+1=28m+4r+1 経過日数D≡5n+1+5≡5(r+1)+1で、D≡0となるのはr=3のみ
T=4n+2=28m+4r+2 経過日数D≡5n+2+5≡5(r+1)+2で、D≡0となるのはr=0のみ
T=4n+4=4(7m+r+1) 経過日数D≡5(n+1)+5≡5(r+1)+5で、D≡0となるのはr=5のみ

と修正します。ピンクが修正箇所です。
従って、T=28m+13, 28m+2, 28m+24です。Tの範囲は2100≦2109+T≦2199より、-9≦T≦90です。つまり表3は、

表5
T=28m+13 T=13, 41, 69。つまり、2122年、2150年、2178年
T=28m+2 T=2, 30, 58, 86。つまり、2111年、2139年、2167年、2195年
T=28m+24 T=-4, 24, 52, 80。つまり、2105年、2133年、2161年、2189年

です。


III) 2200年〜2299年
2109+T→2200+Tと変更します。

表1から、2109年2月1日から2209年2月1日までの経過日数は同じく365×100+24=5217×7+5です。
表4を更に、

表6
T=4n+1=28m+4r+1 経過日数D≡5n+1+5+5≡5(r+2)+1で、D≡0となるのはr=2のみ
T=4n+2=28m+4r+2 経過日数D≡5n+2+5+5≡5(r+2)+2で、D≡0となるのはr=6のみ
T=4n+4=4(7m+r+1) 経過日数D≡5(n+1)+5+5≡5(r+2)+5で、D≡0となるのはr=4のみ

と修正します。
従って、T=28m+9, 28m+26, 28m+20です。
II)と同様にして、Tの範囲は2200≦2209+T≦2299より、-9≦T≦90です。つまり表5は、

表7
T=28m+9 T=9, 37, 65。つまり、2218年、2246年、2274年
T=28m+26 T=-2, 26, 54, 82。つまり、2207年、2235年、2263年、2291年
T=28m+20 T=-8, 20, 48, 76。つまり、2201年、2229年、2257年、2285年

です。


IV) 2300年〜2399年
最後です。もう一息です。III)と全く同様です。2209+T→2300+Tと変更します。

表1から、2109年2月1日から2209年2月1日までの経過日数は同じく365×100+24=5217×7+5です。
表6を更に、

表8
T=4n+1=28m+4r+1 経過日数D≡5n+1+5+5+5≡5(r+3)+1で、D≡0となるのはr=1のみ
T=4n+2=28m+4r+2 経過日数D≡5n+2+5+5+5≡5(r+3)+2で、D≡0となるのはr=5のみ
T=4n+4=4(7m+r+1) 経過日数D≡5(n+1)+5+5+5≡5(r+3)+5で、D≡0となるのはr=3のみ

と修正します。
従って、T=28m+5, 28m+22, 28m+16です。
Tの範囲は2300≦2309+T≦2399より、-9≦T≦90です。つまり表7は、

表9
T=28m+5 T=5, 33, 61, 89。つまり、2314年、2342年、2370年、2398年
T=28m+22 T=-6, 22, 50, 78。つまり、2303年、2331年、2359年、2387年
T=28m+16 T=16, 44, 72。つまり、2325年、2353年、2381年

です。


*まとめ

カレンダーが400年周期であることを使うと、表3,5,7,9より、

4n×100+XX年 XX=09, 15, 26, 37, 43, 54, 65, 71, 82, 93, 99
(4n+1)100+XX年 XX=05, 11, 22, 33, 39, 50, 61, 67, 78, 89, 95
(4n+2)100+XX年 XX=01, 07, 18, 29, 35, 46, 57, 63, 74, 85, 91
(4n+3)100+XX年 XX=03, 14, 25, 31, 42, 53, 59, 70, 81, 87, 98

となります。100年に11回出てきますね。出現確率は11%。結構多いです。

一応、http://www5a.biglobe.ne.jp/~accent/kazeno/calendar/rest.htmで確認したので計算間違いはないと思います。cgiカレンダーは誤差が大きかったですね。

2009年の次は、2015年。その次は2026年です。表3,5,7,9から分かりますが、+6年, +11年, +11年を1サイクルにして増えていきますね。
1サイクルの周期は28です。但し世紀越えで例外があります。400の倍数の年なら+11、400で割った余りが100, 200のときには+6、 300のときは+12です。閏年の変則ルールが反映されてます。


因みに、このように閏年を入れたカレンダーはグレゴリオ暦と言われてます。Wikipedia(http://ja.wikipedia.org/wiki/%E9%96%8F%E5%B9%B4)によると、


そこでローマ教皇・グレゴリウス13世は同世代を代表する学者たちを招集して委員会をつくり、暦の研究を行わせた。こうして1582年、グレゴリオ暦が制定された。グレゴリオ暦は数百年かけて各国で採用されて、現在に至っている。

だそうです。400年の日数が7の倍数というのは利便さからの必然性がありそうです。自分が到底生きていることのない未来の暦まで研究した当時の学者たちは、何を思ってその未来の西暦の数字を見ていたのでしょうか。今回、僕は2101年とかの数字を見て、この年まで生きてるかなー、とか、その頃には世界はどうなっているんだろー、などと思いを巡らしました。


暦の研究は以後も続けられ、地球の自転・公転とよりフィットする暦が考えられました。改訂ユリウス暦です。Wikipedia(http://ja.wikipedia.org/wiki/%E9%96%8F%E5%B9%B4)では、


改訂ユリウス暦は次のような置閏法(=閏年の入れ方)を持つ。1暦年は平均365.242222日で、約4万3500年に1日の割合で暦と季節がずれる。これはグレゴリオ暦より精度がいい。

西暦年が4で割り切れる年は閏年
ただし、西暦年が100で割り切れる年は平年
ただし、西暦年を900で割った余りが200または600になる年は閏年

・・・(中略)・・・

2799年までは2つの暦(=グレゴリオ暦と改訂ユリウス暦)は一致している。しかし2800年がグレゴリオ暦では閏年なのに対し、改訂ユリウス暦では平年になり日付が1日ずれる。2900年は逆に改訂ユリウス暦のみが閏年となり日付はふたたび一致するが以後断続的にこのようなずれが生まれ、5199年を最後に日付が一致することはなくなる。


へぇー、5199年か。もう、人間自体が生きているんでしょーか?ってレベルだよね。

*1:1ヶ月の日全部が、4×7の長方形上にすっぽりと収まります。