【雑感】うるう年の計算

プログラミングを始めて、最初のほうに覚えるのがうるう年の計算。



自称プログラマさんは暗記していると思います。
そして、それ以外の人はほとんど知らないような気がします。

・西暦で、4で割り切れる年はうるう年。
・上記の場合でも、100で割り切れる年はうるう年ではない。
・さらに、400で割り切れる年はうるう年。

なぜこういうややこしいことになっているかというと、地球は太陽のまわりを365.2422日で1周するから。(365.2646、365.2564など、計算方法によっていろいろありますが)

つまり、365 + 1/4 - 1/100 + 1/400ってわけ。

もう少し厳密にすると「さらに、10000年で割り切れる年はうるう年ではない」という条件も必要になります。
「10000年なんて先だからいいじゃん」ってことでこの条件は外されているんだと思いますが、それでは2012年現在、「100で割り切れる」「400で割り切れる」なんてのは気にしなくていいのでは?

いちばん身近な”2000年”はうるう年なので、「4で割り切れる年はうるう年」だけでよさそうです。

「4で割り切れる年はうるう年」という単純なロジックにしましょう!

そしてコンピュータ専門学校の先生も、生徒がこういう解答をしても正解にしてあげましょう。
「円周率=3」の時代だから、うるう年計算もアバウトで!

どうせ2100年には今作ったプログラムは使われていませんから。

P.S.
誕生日・売上日など、普段使う日付は大丈夫だと思います。

と思ったら、ギネス記録の長寿の方は1896年生まれだそうです。
1900年がひっかかります・・・
誕生日を入力する必要のあるシステムでは、もうしばらくは「100で割り切れて、400で割り切れて」という条件は必要。
悠長に待ってたら2100年も入力される可能性がでてくるし・・・

結論:やっぱりきちんと計算しないとダメですね。

  • Spread The Love
  • Digg This Post
  • Tweet This Post
  • Stumble This Post
  • Submit This Post To Delicious
  • Submit This Post To Reddit
  • Submit This Post To Mixx

0 Response to “【雑感】うるう年の計算”

Leave a Reply