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

説明

春分・秋分の日は以下の計算で求めることができます。

ただし、計算式で求められるのは1980年以降になります。また、1980年から100年後といった長期にわたる場合は計算誤差や地球の公転周期のずれなどもあるので正確ではなくなることがあります。

・春分の日の計算式

小数点以下切り捨て関数(20.8431+0.242194*(年-1980)-小数点以下切り捨て関数((年-1980)/4,0))

・秋分の日の計算式

小数点以下切り捨て関数(23.2488+0.242194*(年-1980)-小数点以下切り捨て関数((年-1980)/4,0))

Studioで試す

以下のリンクから Jasmine Tea でこのサンプルプログラムを Studio 画面で開いて実際に試すことができます。プログラムを実行したいときは、エディターの右下にある青色の「実行」ボタンを押してください。

Studio で開く

プログラム

// 春分・秋分の日を計算で求める
cls
input "1980年以降の西暦年を入れてください",Y
n=20.8431+0.242194*(Y-1980)-int((Y-1980)/4)
day=int(n)
print Y;"年の春分の日は3月";day;"日"
n=23.2488+0.242194*(Y-1980)-int((Y-1980)/4)
day=int(n)
print Y;"年の秋分の日は9月";day;"日"
// 切り捨て関数
function int(n)
  a$=str$(n)
  b$=""
  for i=0 to len(a$)-1
    c$=mid$(a$,i,1)
    d=asc(c$)
    if d<48 or d>57 then
      return val(b$)
    else
      b$=b$+c$
    end if
  next
  return val(b$)
end function

解説

2行目で画面を消去しています。

3行目で計算する西暦年を入力してもらいます。

4〜5行目で春分の日を求めます。

6行目で計算した春分の日を表示しています。

7〜8行目で春分の日を求めます。

9行目で計算した秋分の日を表示しています。

11行目以降は小数点以下を切り捨てる関数になります。