閏年(うるう年)の計算方法

  • 投稿 : 2012-02-29
  • 更新 : 2013-11-06

うるう年の条件


1.4で割り切れる
2.ただし、100で割り切れる場合はうるう年でない
3.ただし、400で割り切れる場合はうるう年である

=IF(OR(MOD(A1,400)=0,AND(MOD(A1,4)=0,MOD(A1,100)<>0)),"閏年","平年")

EXCELの場合はこんな感じ。LibreOfficeのCalcでも動作した。

・400で割り切れると、うるう年
・4で割り切れて、100で割り切れない時は、うるう年

ロジック的にはこんな感じ

追記:2017/03/01
=IF(OR(MOD(A1,400)=0,AND(MOD(A1,4)=0,MOD(A1,100)<>0)),"うるう年", "うるう年ではない")

うるう年であるかどうかは、以下の方法で判定できます。

1.判定する年が 4 で割り切れる場合は手順 2. に進みます。割り切れない場合は手順 5. に進みます。
2.その年が 100 で割り切れる場合は手順 3. に進みます。割り切れない場合は手順 4. に進みます。
3.その年が 400 で割り切れる場合は手順 4. に進みます。割り切れない場合は手順 5. に進みます。
4.その年はうるう年です (この年は 366 日です)。
5.その年はうるう年ではありません (この年は 365 日です)。
support.microsoft.com -うるう年を判定する方法

マイクロソフトのページでも書かれているみたいなので引用とリンクを貼っておきます。

この理由により、以下の年はうるう年ではありません。

1700、1800、1900、2100、2200、2300、2500、2600
これらは 100 で割り切れますが、400 では割り切れないためです。

以下の年はうるう年です。
1600、2000、2400
これらは 100 でも 400 でも割り切れるためです。
support.microsoft.com -うるう年を判定する方法

動作確認用の境界的な年は上記になるかと思います。

うるう年

2000年から2099年までは、4で割り切れるだけで正しい。
しかし、この路線は、2000年問題で痛い目にあってるのでどこも採用はしないと思うけどね。

DVD/BDサポートステーション|弊社製ブルーレイディスクレコーダー・ハイビジョンレコーダーご愛用のお客様へのお詫びとお知らせ:シャープ
Microsoftの「Windows Azure」、閏年関連バグでダウン - ITmedia ニュース
スポンサーリンク