※「セキュリティ保護のため...」というメッセージが出る方・日本語が入力できない方へ

(1)ユリウス通日について
暦の計算においては、しばしば「通日」というのが問題にされます。つまり
何年何月何日から、何年何月何日までは、通しで何日間あるか、ということ
です。
一般の生活では大雑把に「何年たった」とか「何ヶ月たった」と言うのです
が、実際には年の長さ、月の長さはバラバラなので、金利計算とか天文計算
などにおいては、正確な日数が必要になります。
こういうときに便利なのが『ユリウス通日』と呼ばれるものです。
これは紀元前4713年1月1日からの通日で、比較する2つの日のユリウス通日
が分かればその間の経過日数はユリウス通日の引き算によって得られること
になります。
この紀元前4713年などというとんでもない日付が出てきたのは、インジェク
ション周期15年、メトン周期19年、ユリウス暦の週日の回帰28年の3つの周
期が同時に始まる日を過去に遡って求めたためです。この場合、実際にユリ
ウス暦が運用され始めたのはA.D.5年なのですが、それ以前についてもユリ
ウス暦が行われていたとみなして逆算します。
インジェクションとは、エジプトで発生した課税上の周期。メトン周期は、
この期間を経過すると日食・月食が(ほぼ)同じ形で再現される周期です。
ユリウス暦は4年に1度閏日を設ける暦法なので28年たつとおなじ週の繰返
しになります。
なお、ユリウス暦と現行のグレゴリウス暦の切替は、1582年に行われていま
す。ユリウス暦の1582年10月4日の翌日がグレゴリウス暦の1582年10月15日と
されました。
もっとも、これはローマ法王庁での話で、実際の切替は各国ごとに随分遅れて
行われています。従って、この切替途中における歴史的な記述の日付は、
その当時その地方でどのような暦が行われていたかをきちんとチェックしな
ければ、安易にユリウス日を計算することはできません。
日本でグレゴリウス暦が採用されたのは明治6年(1873)です。それまでは
太陰太陽暦である天保暦が行われていました。天保暦の明治5年12月2日の
翌日がグレゴリウス暦の明治6年1月1日になっています。
【ユリウス通日の計算】
ユリウス暦・グレゴリウス暦からユリウス日を求める計算式を紹介します。
この方法は私が15年以上も前に導き出したものですが、まだこれ以上効率
的な計算式に出会ってないので、ずっと使用しています。この計算式を導き
出す過程は長くなるので、この場では省略します。
(1)ユリウス暦Y年M月D日のユリウス日を求める。
J = [365.25Y]+[30.6x(M+1)]+D+1720995
但し、M=3〜14(*1), 又2月の23日と24日の間に閏日を入れる制度だっ
た場合においては、閏日を24日とみなし、24〜28日は+1して計算する。
(2)グレゴリウス暦Y年M月D日のユリウス日を求める。
J = [36524.25y2]+[365.25y1]+[30.6x(M+1)]+D+1720997
但し、Y=100y1+y2, M=3〜14(*1)
(*1) 上記で M=3〜14 というのは、1月,2月を前年の13月,14月とみなすこと
をいいます。例えば、1993年2月20日のユリウス日を求めたい時は、
1992年14月20として計算します。
【ユリウス通日の逆算】
ユリウス通日から逆に日付を導き出す方法を紹介します。こちらは結構手順
が面倒なので、グレゴリウス暦の分のみ紹介します。これは前節の計算式を
導き出す過程から派生する手順です。
次のように計算を行う。
(J - 1721120) ÷ 146097 = a1 余り b1 (step 1)
b1 ÷ 36524 = a2 余り b2 (step 2) ☆
b2 ÷ 1461 = a3 余り b3 (step 3)
b3 ÷ 365 = a4 余り b4 (step 4) ☆
b4 ÷ 153 = a5 余り b5 (step 5)
b5 ÷ 61 = a6 余り b6 (step 6)
b6 ÷ 31 = a7 余り b7 (step 7)
このとき、求める日付は
Y = 400 x a1 + 100 x a2 + 4 x a3 + a4
M = 5 x a5 + 2 x a6 + a7 + 3
D = b7 + 1
ただし、ここで M は 3 〜 14 で求まる。
なお、上記計算過程において、☆の付いた(step 2) (step 4) においては、
0 ≦ a2 ≦ 3, 0 ≦ a4 ≦ 3 の範囲に商を押えること。
/*********************************************************************
* ユリウス通日の計算(正規のユリウス日,Long) グレゴリウス暦版
********************************************************************/
long JuliusGetL(long yy, long mm, long dd)
{
long w1,w2,w3;
long ww;
if (mm<3)
mm+=12, yy--;
w1 = yy/100;
w2 = yy - w1*100;
w1 = (long)((double)w1 * 36524.25);
w2 = (long)((double)w2 * 365.25);
w3 = (long)((double)(mm+1) * 30.6);
ww = w1 + w2 + w3 + (long)dd + 1720997;
return(ww);
}
/********************************************************************
ユリウス通日→日付 (グレゴリウス暦版)
*******************************************************************/
void JuliusBackL(long julius, long* yy, long* mm, long* dd)
{
long w[2][7];
w[0][6]=julius-1721120;
w[0][0]=w[0][6]/146097; w[1][0]=w[0][6]-w[0][0]*146097;
w[0][1]=w[1][0]/36524; w[1][1]=w[1][0]-w[0][1]*36524;
if(w[0][1]==4)
{
w[0][1]-- ; w[1][1]+=36524;
}
w[0][2]=w[1][1]/1461; w[1][2]=w[1][1]-w[0][2]*1461;
w[0][3]=w[1][2]/365; w[1][3]=w[1][2]-w[0][3]*365;
if(w[0][3]==4)
{
w[0][3]-- ; w[1][3]+=365;
}
w[0][4]=w[1][3]/153; w[1][4]=w[1][3]-w[0][4]*153;
w[0][5]=w[1][4]/61; w[1][5]=w[1][4]-w[0][5]*61;
w[0][6]=w[1][5]/31; w[1][6]=w[1][5]-w[0][6]*31;
*yy = 400*w[0][0]+100*w[0][1]+4*w[0][2]+w[0][3];
*mm = 5*w[0][4]+ 2*w[0][5]+ w[0][6]+3;
*dd = w[1][6]+ 1;
if(*mm > 12)
{
(*yy)++ ; (*mm) -= 12;
}
}
【ユリウス通日からすぐ分かるもの】
(1)曜日
(ユリウス通日+1)÷7の余りにより
0=日、1=月、2=火、3=水、4=木、5=金、6=土
(2)十干
(ユリウス通日+9)÷10の余りにより
0=甲、1=乙、2=丙、3=丁、4=戊、5=己、6=庚、7=辛、8=壬、9=癸
(3)十二支
(ユリウス通日+1)÷12の余りにより
0=子、1=丑、2=寅、3=卯、4=辰、5=巳、6=午、7=未、8=申、9=酉、10=戌、11=亥
(4)二十八宿
角・亢・テイ・房・心・尾・箕・斗・牛・女・虚・危・室・壁・奎・婁・
胃・昴・畢・觜・参・井・鬼・柳・星・張・翼・軫の順に番号0〜27を
ふっておこう。この時、28宿の値は、(ユリウス通日+11)÷28
の余りで求められる。
【ユリウス通日の小数点】
時刻まで含めてユリウス通日を考える場合は、これに小数点を付けて表現し
ます。この付け方は、グリニッジ平均天文時により表現するものです。この
グリニッジ平均天文時というのは普通のグリニッジ時刻(世界時)から12
時間遅れた時刻体系であり、日本標準時とは9+12=21時間の時差があ
ります。例えば1993年2月20日15:00のグリニッジ平均天文時は1993年2月19日
18:00になりますので、2449038.75 と表現されます。
【MJDについて】
ユリウス通日の値は非常に大きい為、それでは不便だということで、MJD
(Modified Julian Date)というものを使う流儀もあります。これはユリウス
通日から 2400000.5 を引いた値です。
【ユリウス日はリセットされるか?】
ユリウス通日は本来インジェクション周期15年、メトン周期19年、ユリウス
暦の週日の回帰28年が同時にスタートする時点を求めて、それからの日数を
計算している訳ですので、15・19・28の最小公倍数7980年が経過したA.D.3268
年には 0 に戻すべきではないか、という議論もあります。しかし、私はそれ
は今議論してもしょうがない話ではないかと思います。紀元33世紀の人達
が決めれば良いことです。

