閏年の判定方法とフェアフィールドの公式

閏年(うるう年)は400年に97回来るような規則になっている。

閏年の規則

閏年でないときの一年間は365日。閏年だと一年間は366日(2月29日が増える)なのはご存知だと思います。

閏年の判定方法は(グレゴリオ暦では)以下のように決まっています。

規則1:基本的には西暦が4の倍数の年が閏年

規則2:100の倍数のときは例外で閏年でない

規則3:さらに400の倍数のときは例外の例外で閏年である

例1

2016年は規則1より閏年である。

例2

2100年は規則2より閏年でない。

例3

2000年は規則3より閏年である。

  • 基本的に規則1だけ覚えておけば(100年に一回の例外を除いて)閏年が判定できるので,規則1しか知らない人もけっこういます。2000年は400年に一度の「規則3が適用されるレアケース」だったのです!
  • 夏のオリンピックは4の倍数の年に開催されるので,規則1より「ほとんどの場合」オリンピック開催年と閏年は一致します。

閏年の割合

400年周期の規則なので, 400年間に何回閏年が来るか数えてみます。

  • 4の倍数は100回なので規則1だけを考えると閏年は100回来る。
  • その中で100の倍数は4回なので規則2を考慮すると閏年は100-4=96回来る。
  • その中で400の倍数は1回なので規則3を考慮すると閏年は96+1=97回来る。

400年に97回来るような規則になっていることが分かります。次に,なぜこのような規則になっているのか説明します。

閏年の回数の算出

以下の二つの情報を元に,閏年をどれくらいの割合で設定すればよいかが計算できます。

  • 太陽暦では太陽が地球の回りを一周する時間(の近似)を1年と定めます。太陽が地球を一周する時間と1年の長さをできるだけ等しくするために閏年を設定します。

  • 太陽が地球を一周するのにかかる時間は約 365.2422365.2422 日です。

閏年の割合の算出

閏年の割合を xx とおくと,1年の平均日数は 365(1x)+366x365(1-x)+366x になるので

365(1x)+366x=365.2422365(1-x)+366x=365.2422

これを解くと x=0.2422x=0.2422

この割合を達成するために 400400 回に 9797 回閏年となるように設定されています。

実際,97400=0.2425\dfrac{97}{400}=0.2425 となり目標の値とかなり近くなっています。

フェアフィールドの公式

関連した話題として,フェアフィールド(Fairfield)の公式を紹介します。

西暦 YYMMDD 日は(1年1月1日から数えて)

365(Y1)+Y4Y100+Y400+31+28+306(M+1)10122+D365(Y-1)+\lfloor\tfrac{Y}{4}\rfloor -\lfloor\tfrac{Y}{100}\rfloor +\lfloor\tfrac{Y}{400}\rfloor \\+31+28+\lfloor \tfrac{306(M+1)}{10}\rfloor -122 +D

日目。

ただし,2月29日が「年末」でないと厄介なので,1年は3月から14月までとみなしてから上記の公式を適用します。つまり,3M143\leq M\leq 14 です。

例えば2015年2月4日の場合,Y=2014,M=14,D=4Y=2014,M=14,D=4 として上式を適用します。

証明の概略
  • 基本的に (Y1)(Y-1) 年までに経過した年数は 365(Y1)365(Y-1) 日。閏年の効果が Y4Y100+Y400\lfloor\tfrac{Y}{4}\rfloor -\lfloor\tfrac{Y}{100}\rfloor +\lfloor\tfrac{Y}{400}\rfloor

  • 今年に入って,(M1)(M-1) 月までに経過した日数が。 31+28+306(M+1)1012231+28+\lfloor\tfrac{306(M+1)}{10}\rfloor -122
    全部確かめるのはめんどうだが,例えば M=4M=4 だとこの値は 31+28+3131+28+31 となる。

  • 今月に入ってから DD 日目。

まさに雑学って感じです。

Tag:難しめの数学雑学・ネタまとめ