ユリウス日の計算

ユリウス日

ユリウス日の逆算

ユリウス日からの逆算

計算例

年月日ユリウス日備考
1582年10月 4日2299160ユリウス暦の最終日
1582年10月15日2299161グレゴリオ暦の開始
ユリウス日年月日備考
0-4712年1月1日ユリウス日の開始

ユリウス日(ユリウス通日)

ユリウス日(Julian Day、JD)とは、ユリウス暦紀元前4713年1月1日の正午(世界時)からの日数です。従って、翌日の0時は0.5 となり、12時を過ぎないと1にはなりません。日数計算は、この点を考慮に入れなければならないのがちょっと「やっかい」。

計算式について

計算式は、Wikipediaのユリウス通日 をそのまま使用しています。この計算式にはガウスの記号が含まれていますが、Javascriptでは床関数のMath.floor()を使うと所定の結果が得られます。

また、Javascriptにはmod関数がないので自力で余りを計算します。この際に、負の整数の余りを計算する場合があるので注意が必要です。例えば、

            m = (month - 3) mod 12
        
の計算において、1月の場合の値は m = 10 であることを期待しています。mod使わずにこの式を書き換えると
            wm = month - 3 // 面倒なのでこれを使います
            m  = wm - [wm / 12] * 12
        
とできます。[wm / 12]は、ガウスの記号で結果を整数化するものとします。通常は、int関数を使用ことが多いのですが、Javascriptにはこの関数もありません。

ここでは、分子 wm が負の場合は -1、正の場合は 0 になることを期待しています。 使用する言語により、意図通りの物もあれば、全て 0 になるものもありますので注意が必要です。 Javascriptの場合は、前にも触れた通り Math.floor 関数が期待通りの値を返してくれますのでこれを使用すればよいでしょう。

剰余の計算については、Modの確認処理も参考にしてください。

ユリウス暦とグレゴリオ暦

  • ユリウス暦 :紀元前45年1月1日から実施され、1582年10月4日(木)までに使われた暦。4の倍数である年を全て閏年とした。
  • グレゴリオ暦:1582年10月15日(金)以降に使われるようになった暦。なお、ユリウス暦1582年10月4日の翌日が、グレゴリオ暦の1582年10月15日と定められています。この間は、 日付が不連続になっていますが、曜日の連続性は維持したとのことです。

紀元前の指定

紀元前の指定方法は、国立天文台のユリウス日に則っています。即ち、 「紀元元年の前年を0年としています。このため、これを紀元前1年とする方法とは1年ずつ差異があります。」と言うことですが分かりましたか?
つまり、西暦0年なんて存在しないが、便宜上B.C.1年を西暦0年として計算しています。なので、紀元前を計算する場合は、「年に 1を加えてね」ということです。
ユリウス日の起点となる紀元前4713年1月1日を、前記国立天文台のページに入力すると「該当なし」になります。年には 1 を加えた -4712(B.C.年 + 1) を指定する必要があります。