ユリウス通日
紀元前4713年1月1日12時 (世界時) からの日数を、ユリウス通日 (Julian Day : JD) と呼びます。 観測夜間に日が変わることを防ぐため、ユリウス通日の1日は昼の12時に始まります。 ユリウス暦とグレゴリオ暦の日付換算や日数計算をするため、1583年にスカリゲル (Joseph Justus Scaliger) によって考案されました。 ユリウス通日の基点が紀元前4713年である理由は、下記3つの周期の基点が一致するためだと考えられています。
太陽章 (28年)
太陽章は、ある年の全ての日付の七曜が同じになる年の周期です。
紀元前9年がこの周期の第1年です。
例えば、2000年から2055年までの1月1日の曜日は以下のようになり (太字はうるう年) 、28年周期で曜日パターンが同じになることがわかります。
2000年~2027年 : 土月火水木土日月火木金土日火水木金日月火水金土日月水木金
2028年~2055年 : 土月火水木土日月火木金土日火水木金日月火水金土日月水木金
2000年~2027年 : 土月火水木土日月火木金土日火水木金日月火水金土日月水木金
2028年~2055年 : 土月火水木土日月火木金土日火水木金日月火水金土日月水木金
太陰章 (19年)
太陰章は、ある年の全ての日付の月相が同じになる年の周期です。
紀元前1年がこの周期の第1年です。
例えば、2000年から2037年までの1月の新月の日付は以下のようになり、19年周期で月相パターンが同じになることがわかります。
2000年~2018年 : 7,24,13,3,22,10,29,19,8,26,15,4,23,12,31,20,10,28,17
2019年~2037年 : 6,25,13,3,22,11,29,19,8,27,15,4,23,13,31,20,10,28,16
※月齢(整数)から新月の日付を算出したので1日前後の誤差があります。
2000年~2018年 : 7,24,13,3,22,10,29,19,8,26,15,4,23,12,31,20,10,28,17
2019年~2037年 : 6,25,13,3,22,11,29,19,8,27,15,4,23,13,31,20,10,28,16
※月齢(整数)から新月の日付を算出したので1日前後の誤差があります。
インディクティオ (15年)
インディクティオは、ローマ帝国で農業や地税を記録するために使われていた15年周期の年代単位です。
西暦313年がこの周期の第1年です。
したがって、以下の3式が全て割り切れる年がユリウス通日の基点です。
太陽章 : (年 + 9) / 28
太陰章 : (年 + 1) / 19
インディクティオ : (年 - 313 + 1) / 15
現代人らしくプログラム (JavaScript) で解を求めると、以下のソースコードになります。
var year, a, b, c;
year = -9; // 太陽章の基点
// 7980年周期なので紀元前7989年まで試行する
while (year > -7989) {
a = (year + 9) % 28;
b = (year + 1) % 19;
c = (year - 312) % 15;
if (a == 0 && b == 0 && c == 0) break;
year = year - 28;
}
year = -9; // 太陽章の基点
// 7980年周期なので紀元前7989年まで試行する
while (year > -7989) {
a = (year + 9) % 28;
b = (year + 1) % 19;
c = (year - 312) % 15;
if (a == 0 && b == 0 && c == 0) break;
year = year - 28;
}
このプログラムの計算結果 (yearの値) は「-4713」となります。
検算すると、
太陽章 : (-4713 + 9) / 28 = -168
太陰章 : (-4713 + 1) / 19 = -248
インディクティオ:(-4713 - 313 + 1) / 15 = -335
となり、確かに3つの周期が紀元前4713年で全て割り切れることがわかります。
また、28*19*15=7980 なので、
太陽章 : (-4713 + 7980 + 9) / 28 = 117
太陰章 : (-4713 + 7980 + 1) / 19 = 172
インディクティオ : (-4713 + 7980 - 313 + 1) / 15 = 197
となり、確かに7980年周期で3つの周期が全て割り切れることがわかります。
現在のユリウス通日をリアルタイムに表示するプログラム
Julian Day :