閏年の計算方法

以前の日記で、Excel が西暦 1900 年を「わざと閏年として扱っている」ことについて触れた。

www.toyfish.blog

この閏年の計算方法、調べてみるとなかなか細かいようだ。Google で探したページによると、こんな感じ。

  1. 4 で割り切れる年は閏年
  2. ただし、100 で割り切れる年は閏年じゃない
  3. ただし、400 で割り切れる年は閏年
  4. ただし、3200 で割り切れる年は閏年じゃない
  5. ただし、80000 で割り切れる年は閏年

最初のは、たいていの人が知っているやつだ。プログラミングや数学をやってる人なら、3 番目くらいまでは知ってる人も多いと思う。が、4 番目と 5 番目は……。3200 や 80000 という数字は、他にもいくつかのページで見つかるが、まぁさすがに一般に認められているとはいえなさそうだ。違う記述になっているサイトもある。

現在の地球の公転周期(太陽年)約365.2422日から計算すると、4000で割り切れる年や20000年で割り切れる年も平年とすべきという結果が出る。グレゴリオ暦においてもこの 4000年ルールを採用しているとする文献もある。地球の公転周期自体が変動するものであるため、4000年ルールによる補正が適切であるかどうかは現状でははっきりしないとも言われる。

Wikipedia - 閏年

ちなみに、こんなに細かい規則になってしまうのは、上の引用にもあるように公転周期が半端なのに、覚えやすい年で少しずつ調整しようとしているからだ。閏年自体の説明も含めて、tmt さんによる下記の説明がわかりやすい。

tmt's Math Homepage - ちょっと複雑なうるう年の規則
http://www4.airnet.ne.jp/tmt/mathfaq/leapyear.html