NEC得選街【ノートPC】
はい、電算室です。今日はなにが起きるのでしょうか。
前回、曜日の求め方、ハッピーマンデーによる祝日の求め方を解説しました。
曜日計算はシステムの根幹にかかわるものなので大事なものです。
なのに、なのに・・・
それがバグっていたなんて・・・・。
今回の海の日の不具合の前に、実は秋分の日でも不具合がありました・・・
[2回]
秋分の日の翌日・・・。普通に処理を実行していたら日付が秋分の日になってしまいました。
本当は営業日を算出するので、土日祝日は飛ばしてその翌日を求めるはずなのに・・・。
とにかく日付は手修正して、原因を調べました。
前任者曰く
「そうなんだよ。何故か時々春分の日と秋分の日は間違えるんだよなぁ、このシステム」
不具合を知っていたなら直してください(-_-#)
こんなことであたふたするのはもうイヤなので、原因を調べました。
うーん・・・。よくわかりません。
ただ、私が知っている計算式とは違うようです。
と、いうことで計算式を書き直しました。
一般的に知られている春分の日の計算式はこちらです。
春分の日 = int(20.8431+0.242194*(年-1980)-int((年-1980)/4))
そして、秋分の日はこちら
秋分の日 = int(23.2488+0.242194*(年-1980)-int((年-1980)/4))
(intは整数値)
ただし、注意が必要です。上記の式は1980~2099年までなのです。
確かめてみましょうか。
例えば、2007年の春分の日ですが・・・
20.8431 + 0.242194 × (2007-1980) = 27.382338 ≒ 27
(2007 - 1980) / 4 = 6.75 ≒ 6
27 - 6 = 21
ということで、2007年3月の春分の日は21日ということになります。
2007年の秋分の日は
23.2488 + 0.242194 × (2007-1980) = 29.788038 ≒ 29
(2007 - 1980) / 4 = 6.75 ≒ 6
29 - 6 = 23
ということで、2007年9月の秋分の日は23日です。
ちなみに、春分の日、秋分の日は前年の2月1日に、春分の日・秋分の日の日付が書かれた「
暦要項(れきようこう)」が官報に掲載されることによって、正式決定となります。
詳しい話は、
国立天文台のHPに掲載されています。
と、いうことは地球の運行状況によって日が変わるかも!?
まぁ、一応計算から求められた日からずれたことがないらしいのですが・・・。
おまけとして、2100年~2150年の春分の日、秋分の日は・・・
春分の日=int(21.8510+0.242194*(年-1980)-int((年-1980)/4))
秋分の日=int(24.2488+0.242194*(年-1980)-int((年-1980)/4))
らしいです。
でも、2100年にはこのシステムはないだろうな・・・。
PR