工事中

海上保安庁水路部の月・太陽の位置計算式を使った暦計算の、過去の計算範囲はどのくらいか?
「日本書記」
の記述の日付が最古の資料として、畏れながら当方の計算値をチェックさせて戴きます。

古代史で太陽と月のシュミレーション

日本古代史で、日本国家成立の根源は「日本書記」に頼ることとなる。そこには神武天皇即位
前7年から月朔・干支のついた日付のある記事が900程ある。以下日本書紀の一節から紹介する。

その年の冬の10月丁巳(ひのとみ)の朔(一日)にして辛酉(かのととり)の日(陰暦5日)、
天皇親(みず)から諸皇子・船師を率いて東へ征き給う(日本書記卷3、神武天皇紀)

その年とはいつのことか?旧暦の10月にして朔日の干支が丁巳(ひのとみ)
その年は皇紀前7年(西暦前667年)とされている。当方の計算でも-666年(西暦0年も入れる
ので)
10月丁巳(ひのとみ)の朔(一日)となる。

この干支を使う暦は中国
で本格的な暦に使われる以前から、日本にも伝えられ、現在でもおなじみの
旧暦につながっている。このことは数千年間の太陽と月の動きを計算する基本となる時刻の引数が60日
の周期で正確に得られる。またこの干支の日が朔(太陽と月が重なる日)と云うことで既に公開した暦の

計算式を過去に遡らせ、正確な日数とその朔の計算を行うことができるのではと、これを行ってみた。

計算のポイントはマイナスの時刻引数が最大の難関、何時ものことながらこれも吉田穂積の度重なるト
ライで解決。3千年以前でも判りやすいように現在の太陽暦をベースにして、干支暦、旧暦と共に表した。

現在の心境を述べると、古代史の太陽と月が現在でも全く同じように廻っている。これを実感することが
できたことを喜んでいます。また自然の時の流れはわれわれ生物に比べてゆっくりとしていて、古代でも
昨日のようなもので、人間の歴史がはかなく短いことであることも感じました。

この後、日本書記の数多い日付とその計算結果をお知らせしてまいります。ご期待下さい。

古代への日数を確定させる
○計算の基礎となる太陽と月の位置(黄経)の略算式  (海上保安庁水路部   

まず日数を正確に押えることが先決。既に当HPでの計算式(下記に一部を示す)の計算範囲は1901〜2099年であ
る。用いた海上保安庁の式のなかで日数は下記 Z=・・・にしめす。W=(YY-1900)/4 式でわかるように1900年以
前はマイナスになる。

また判りやすくするために現在の太陽暦(グレゴリオ暦)が古代から続いていたと仮定して説明することが大事である。
なぜならこれがユリウス暦と比較して日本書紀の記述にある日付を述べてもあまり意味がないと思うからである。

現在これでどうにか良いのでは?と使っているものを終わりに示します。これについて識者のご意見を伺いたいと思
います。もっと簡単にはできないか?とは何時も思っているのですが。

'当HPの計算式の一部  ****************太陽の黄径************************

OOKEI:

deg = 3.141592653589794 / 180

W = (YY - 1900) / 4: F = W - Int(W)        'YY 西暦の4桁 MM に月 DD に日を入れる

V = Int(W): WW = V + F

Y = Int(1461 * WW): X = Int((MM + 7) / 10): R = Int(1 - F): S = Int(0.44 * (MM + 4.4))

Z = Y + 31 * MM + DD + (X - 1) * R - X * S - 27424

jj = HH / 24: T = (Z + jj) / 365.25                          HHは時間     が時刻引数

 

TA(0) = deg * 279.0358 + deg * 360.00769 * T

TA(1) = (deg * 1.9159 - deg * 0.00005 * T) * Sin(deg * 356.531 + deg * 359.991 * T)

TA(2) = (deg * 0.02) * Sin(deg * 353.06 + deg * 719.981 * T)

以下略します。

現在古代のマイナス年数を入力して日数計算に使っている式
次のように、Z9が日数です。
OOKEI:
'deg = 3.14159265358979 / 180
W = (YY - 1900) / 4: F = W - Int(W)
V = Int(W): WW = V + F
Y = Int(1461 * WW): X = Int((MM + 7) / 10): R = Int(1 - F): S = Int(0.44 * (MM + 4.4))
Z9 = Y + 31 * MM + DD + (X - 1) * R - X * S - 27424
D0 = 0
AA = Int(YY / 400) - Int(YY / 100) + 15
If  YY / 100 -  Int(YY / 100) = 0  Then  Z0 = Int(YY / 100)
If  Z0 / 4 - Int(Z0 / 4) <> 0 And MM < 3 Then D0 = 1
Z9 = Z9 + AA + D0
jj = HH / 24: T = (Z9 + jj) / 365.25:


工事中工事中

戻る