しらべる一般 できごと>うるう年問題

うるう年問題


 コンピューターシステムを作る場合、「2004年は閏年・・・」というように、1つ1つコンピューターに記憶させることは、まずありません。
 閏年の法則性を検討して数式を設計し、それによって、閏年になると「今年は2月が29日まであるぞ」と、コンピューターに認識させるのです。

 では、なぜ2000年の閏年は「問題」なのか?
 一般にプログラムの閏年の定義には、
「4で割れるが、100で割り切れる場合は閏年ではない」という式を入れます。ところが、2000年は上記の式だけでいくと、「閏年ではない」ことになり、コンピューターは2月29日を、”3月1日”だと誤認するわけです。以後の日付は、1日ずつ繰り上がってしまいます。日付に基づいて、たくさんの処理をこなしているコンピューター・システムでは、これは大問題です。
 そこで、もう一つ、「400で割り切れる年は閏年である」という条件をつけておくと、1600年、2000年、2400年・・が、きちんと閏年と認識されます。

 この「400年で・・」、の条件が入っていないプログラムで動いているコンピューター・システムでは問題が発生することが、一般に「うるう年問題」と呼ばれているのです。

 さて、ここまで読んだ方で、「閏年って4年に一回だから、1900年や、2100年は閏年だろう?」という方はいませんか?
 実は、閏年は必ずしも「4年に1回」ではないのです。誤差の調整のために、100で割り切れる年は閏年としないのです。しかし、さらに調整のために、400年に1回は、100で割り切れるけれど、閏年にするのです。
 私たちが生まれてから閏年はずっと4年に1回だったし、オリンピックもそうだったし・・だから、そう思う方が自然です。1600年にはコンピューターが生まれてませんでしたから、2000年が初めての「例外的うるう年」の体験となったわけです。
 関連記事
うるう秒閏年

 



ありがとう Copyright しらべる 最終更新 2000/1/2