2015/02/04

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

分野: その他  レベル: マニアック

閏年(うるう年)は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.2422$ 日です。

(閏年の割合の算出)
閏年の割合を $x$ とおくと,1年の平均日数は $365(1-x)+366x$ になるので
$365(1-x)+366x=365.2422$
これを解くと $x=0.2422$

この割合を達成するために $400$ 回に $97$ 回閏年となるように設定されています。
実際,$\dfrac{97}{400}=0.2425$ となり目標の値とかなり近くなっています。

フェアフィールドの公式

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

西暦 $Y$ 年 $M$ 月 $D$ 日は(1年1月1日から数えて)
$365(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月までとみなしてから上記の公式を適用します。つまり,$3\leq M\leq 14$ です。
例えば2015年2月4日の場合,$Y=2014,M=14,D=4$ として上式を適用します。

証明の概略

・基本的に$(Y-1)$ 年までに経過した年数は $365(Y-1)$ 日。閏年の効果が $\lfloor\tfrac{Y}{4}\rfloor -\lfloor\tfrac{Y}{100}\rfloor +\lfloor\tfrac{Y}{400}\rfloor $

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

・今月に入ってから $D$ 日目。

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

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

分野: その他  レベル: マニアック