色々虎威 ゆるり

~IRO IRO TRY~

春分の日の計算式がちょっとだけややこしいという話

今日は春分の日ですね。
祝日ですが、土曜日だと何か損した気がしてなりませんね。

計算機

春分の日

春分の日とは、昼と夜の長さがだいたい一緒になる日、という事です。
春分の日が、お彼岸の中日になるわけですが、だいたい3月の20日とか21日とかですよね。
実は、固定されていないんです。
かといって、成人の日や体育の日のように、月曜日に、というわけでもないんです。

ややこしい計算

プログラムを組むうえで、土日の算出は可能ですが、祝日は自分でロジックを組まないといけません。
日にちが固定されているものは簡単ですが、そうでないものは結構面倒です。
成人の日や体育の日など、第○月曜日とかもまあ面倒ですが、これはそれほどでもありません。

実は、春分の日秋分の日を導く計算式というのがあるんです。

スポンサーリンク
 

計算式

Int(20.8431 + 0.242194 * (year - 1980)) - Int((year - 1980) / 4)
※year = 対象年、Int()は小数点以下切り捨て

なにゆえにこんな事が必要かというと、春分秋分ともに、天文に伴う日付だからです。
そう、うるう年などの微妙な誤差を、計算する必要があるのです。

これに当てはめると、

2014年・・・21日
2015年・・・21日
2016年・・・20日
2017年・・・20日
2018年・・・21日
2019年・・・21日
2020年・・・20日
2021年・・・20日

と、だいたい2年おきに20日と21日を交互する感じになります。
ただ、この規則性も、うるう年によって補正される年があると思いますが。
なお、この計算式が使えるのは2100年まで、という事らしいです。

スポンサーリンク