閏年
暦の例外「閏年」
「閏年」の基本的な考え方
閏年の例外
1900年は閏年なのに、Excelでは閏年ではない?
Excelで閏年かどうかを調べる方法
1年の日数は365日と言うのが常識です。
閏年は「4年に1度、1年の日数が366日の年」である。つまり暦の例外です。
このことは、大半の方が理解されているところでしょう。
しかし、閏年には例外があることは知らない方も多いはずです。
その例外には、更に例外があることを知っていいる人は更に少なくなるでしょう。
ページトップへ
太陽の周りを地球が一周する日数は、365.24190日です。
1年で0.2422日の誤差なので、4年で0.9688日の誤差ができます。
0.9688日というと、ほぼ1日ということになります。
したがって、1年をきっちり365日としてしまうと4年に約1日ずつずれていくことになります。
閏年は、その誤差を調整するために決められたものです。
4年に1度だけ閏年として、1年が366日になる理由です。
しかし、4年に1度1日を追加して調整しても、0.9688日を1日として計算するわけですから更に誤差が生まれてしまいます。
それが閏年に、例外があり更に例外がある理由です。
ページトップへ
閏年を決めるルールは、以下の通りです。
1 閏年 西暦年が4で割り切れる年は閏年
2 閏年の例外 上記1であっても西暦年が100で割り切れる場合は、閏年としない
1900年、2100年は、100で割り切れるので閏年ではありません。
(2000年は更に例外です。「3 閏年の例外の例外」を参照)
3 閏年の例外の例外
上記2であっても西暦年が400で割り切れる場合は閏年
2000年、2400年、2800年・・がこの「閏年の例外の例外」でした。
1,900年、2000年、2100年・・・は閏年ではないはずですが、2000年は400で割り切れるため閏年でした。
古いコンピューターでは、例外の例外に対応していなかったため、2000年が閏年ではないとしたシステムもあたそうです。
注意:
1900年は暦上は閏年ではありません。しかし、Excel上では、閏年として取り扱われています。
パソコンの初期のころ、処理速度やメモリーの容量の都合から年は二ケタの数値で扱われることが多かったようです。
それらの資源を有効に活用するために、閏年は単純に4年に1度として扱われてきたそうです。
そのため、1900年は閏年として取り扱われてきました。
年を4桁で扱うようになった今でも、1900年を閏年として扱っているのはその名残なのだそうです。
ページトップへ
閏年はの場合、2月の日数に1日加算されます。
つまり、閏年の2月の末日は29日になります。
2月の末日の日日を取得できれば、閏年かどうかを判定することができます。
月の末日は、月や年によってバラバラです。でも翌月の初日は、「1」で決まりです。
次の月は、知りたい月に1を加算したものが翌月です。
つまり、末日は次の月の初日の1日前であることから
末日の日付(シリアル値)=翌月の1日の日付(シリアル値)- 1
∴ ある[年・月]の末日の日付=DATE(年,月+1,1)-1
・・・・・・(翌月1日から、「-1」の日付が末日の日付)
ある年月の末日の「日」を求める計算式は、以下の計算式で求めることができます。
末日の日=DAY(DATE(年,月+1,1)-1)
つまり、3月1日から「-1」した日付の日が2月の末日です。
2月の末日=DAY(DATE(年,3,1)-1)
で求めることができます。
2月の末日が、「29」となった場合が閏年ということになります。
(ただし、Excel上では1900年は閏年になっていますので注意してください。)
さっそく、Excelで試してみてください。
ページトップへ