SQLServerで春分の日と秋分の日をSQLで求める計算式

プログラミング SQL Server

春分の日と秋分の日は毎年違うので計算で春分の日と秋分の日をSQLで求めてみます。

スポンサーリンク

春分の日と秋分の日は毎年違う

春分の日と秋分の日は


祝日としての春分の日・秋分の日は、前年の2月1日に、春分の日・秋分の日の日付が書かれた「暦要項(れきようこう)」が官報に掲載されることによって、正式決定となります。

ということで「毎年決まった日」ではありません。

質問3-1)何年後かの春分の日・秋分の日はわかるの?
地球の運行状態などが現在と変わらないと仮定すると、将来の春分日・秋分日を計算で予想することができます。

しかしながらプログラムの処理上、カレンダーを作成したりする場合にどうしても来年以降の春分の日と秋分の日が知りたいことがあります。

そこでSQLで暫定的ではありますが、計算して指定した年の春分の日と秋分の日を求めてみます。

春分の日と秋分の日を計算で求める

春分の日と秋分の日を計算するにもその方法がないといけないので公式を探してみました。

公式を発見

以下のサイトでEXCELでの処理ですが、公式を発見しました。

Excel 2010:春分の日や秋分の日を求めるには
祝日法では、国立天文台の観測に基づき、前年の2月に官報による告示により決定されてはじめて春分の日と秋分の日が正式に決まりますが、INT関数を使って暫定的に求めることができます。

早速SQLServerで実装です。

SQLで実装

SQLで以下のソースを作成しました。

DECLARE @year INT = 2013
SELECT
  CAST(ROUND( (20.8431+0.242194*(@year-1980))-((@year-1980)/4) , 0, 1 ) AS INT ) AS 春分の日
 ,CAST(ROUND( (23.2488+0.242194*(@year-1980))-((@year-1980)/4) , 0, 1 ) AS INT ) AS 秋分の日

年を2013年で実行すると

春分の日    秋分の日
   20          23

ということで今年の春分の日と秋分の日が求められました。

タイトルとURLをコピーしました