今年はうるう年のため、昨日の2016-02-29はうるう日でした。 うるう年は4年に一回かつ干支は12種類のため、うるう年になる干支は子と辰と申しかありません。

さて、うるう年にならない干支が存在しますが、うるう日にならない曜日というのは存在するのでしょうか? 存在しないなら、うるう日になりやすい曜日というのは存在するのでしょうか?
気になったので調べました。

うるう年のルール

うるう年は4年に一回、ただし100で割り切れて400で割り切れない年は来ないというルールになっており、400年間で97回うるう年がおきて一周します。 そのため、一周する400年間の傾向を調べれば、後はその繰り返しなので変化がなく、うるう日の傾向をすべて調べたと言えます。 今回は2000年から2399年までのうるう年を調べました。

うるう日になりやすい曜日は何曜日か

97は7で割り切れず、6余るため、全ての曜日が均等にうるう日になることはありません。 数学が得意な人ならば数式でぱっと曜日計算ができそうですが、私は得意ではないのでプログラムで全列挙して集計します。

うるう日カウントプログラム

以下のrubyスクリプトを実行する2ことで、2000年から2399年までのうるう日の曜日をカウントして集計します。

require 'date'

w = Hash.new(0)
2000.step(2399, 4) do |year|
    if Date::valid_date?(year, 2, 29)
        d = Date.new(year, 2, 29)
        w[d.wday] += 1        
    end
end

7.times {|wday| puts "#{Date::DAYNAMES[wday]}:#{w[wday]}"}

結果

結果は以下のようになりました。

Sunday:13
Monday:15
Tuesday:13
Wednesday:15
Thursday:13
Friday:14
Saturday:14

月曜日と水曜日がうるう日になりやすく、日曜と火曜と木曜がうるう日になりにくい結果になりました。 もっと差が出るかと思いましたが、均等に起きた場合に比べて一回少ない程度に収まり、思った以上に偏りはないようです。

うるう日の偏りの原因

どうしてこのような偏りができるのでしょうか。 どうやら100年に一度のうるう年にならない年が影響していそうです。

うるう日は基本的に以下の順に曜日が変わっていきます。
火→日→金→水→月→土→木→火(2000年をスタートとした場合)

ですが、100で割り切れて400で割り切れない年はうるう年では無いため、曜日がずれてしまいます。 このとき、次のうるう日まで一日少なくなるため、次のうるう日の曜日は一日前の曜日になります(土曜日なら金曜日になる)

例えば、100年に一度のスキップが無い場合、2104年のうるう日は土曜日になりますが、2100年がスキップされたため一日前の金曜日になります。 これにより、火→日→金→水→金→水→月→土→木→火と、うるう日のループでは3つ前の曜日に戻ります。

これにより、2092年、2096年に金曜日と水曜日がうるう日になりましたが、2104年と2108年もまた金曜日と水曜日がうるう日になり、他の曜日より2回多くなります。同じように2204年は木曜日になるはずですが2200年の影響により水曜日になり、水曜日と月曜日が、2304年は木曜日になるはずが月曜日になり、月曜日と土曜日が多くうるう日になります。

まとめると、2100年の影響で金曜日と水曜日が、2200年の影響で水曜日と月曜日が、2300年の影響で月曜日と土曜日が多くうるう日になります。 そのため、400年間で多くならなかった日火木が13回うるう日になり、1回多くなる金土が14回、2回多くなる月水が15回うるう日になるようです。

次にうるう日が月曜日になるのはいつか?

今年と同じく、月曜日がうるう日になるのは最速で28年後の2044年です。 例外でスキップされる場合を除けば28年後になります。

なお、私は1988年生まれであり、その年のうるう日は月曜日でした。 2000年は例外スキップが無いため、ことしは生まれ年とうるう日が一致する年になります。

なお、2400年までに月曜日がうるう日になるのは以下の通りです。

2016-02-29 2044-02-29 2072-02-29 2112-02-29 2140-02-29
2168-02-29 2196-02-29 2208-02-29 2236-02-29 2264-02-29
2292-02-29 2304-02-29 2332-02-29 2360-02-29 2388-02-29

私が生きている間にはあと2回くるか、人類が老いを克服して無限に生きられるようになり、数えるのが無意味になるかのどっちかですね。

このエントリーをはてなブックマークに追加