ユリウス日(JDN)とは — 定義・計算法・暦変換の基礎

ユリウス日(JDN)の定義・計算法と暦変換の基礎を分かりやすく解説。歴史日付や時間計算の変換手順と実例を丁寧に紹介。

著者: Leandro Alegsa

ユリウス日(JDN)とは、歴史的な基準点(エポック)から経過した日数を整数で表したもので、天文学や暦の計算で広く使われます。起点は、プロレプティックなユリウス暦での紀元前4713年1月1日の正午(世界標準時、UT)と定められ、その正午から正午までの1日をユリウス日0(JDN 0)として数えます。したがって、JDN は「正午を基準にした日単位」で連続的に増え、JDN が7の倍数になる日は月曜日に対応します。負の値も定義でき、すべての記録された歴史より前の日付にも拡張できます。(ユリウス暦の起点やエポックの扱いに注意が必要です)

JD(ユリウス日付)とJDN(ユリウス日番号)の違い

混同しやすい用語ですが、次のように区別します。

  • ユリウス日(Julian Date, JD):紀元前4713年1月1日正午UTを起点とした連続した日数の実数(小数部を含む)。小数部は正午からの経過時間を1日を単位として表します。たとえば JD = 2454115.05486 は、対応する暦日と世界標準時が 2007 年 1 月 14 日 13:18:59.9 に相当する、という意味です。
  • ユリウス日番号(Julian Day Number, JDN):JD の整数部分(または一般に floor(JD + 0.5) により得られる整数)で、その「日」自体を識別する番号です。JDN は日単位の参照や日付間の差を簡単に計算するために用いられます。

JDN と曜日の関係

JDN を 7 で割った余りで曜日を決めることができます。慣習的には、JDN mod 7 = 0 が月曜日、1 が火曜日 … 6 が日曜日に対応します。したがって、任意の二つの日付の曜日を求めるには、それぞれの JDN の値を用いて余りを取ればよいです。

暦日から JDN を求める標準的なアルゴリズム

グレゴリオ暦(近代暦)の日付から JDN を求める計算は次の通りです(整数演算を使った安定した方法)。月が1月・2月の場合は扱いを変えます。

 a = floor((14 - month) / 12) y = year + 4800 - a m = month + 12*a - 3 JDN = day + floor((153*m + 2)/5) + 365*y + floor(y/4) - floor(y/100) + floor(y/400) - 32045 

ユリウス暦(グレゴリオ暦採用以前の暦)を使う場合は、上式のうちうるう年補正部分をグレゴリオ調整(- floor(y/100) + floor(y/400))ではなく floor(y/4) に置き換え、定数も -32083 とします。これらの式は、暦の日付が与えられたときに安定的にJDNを返します。

時刻を含む JD の計算(JDN と小数部)

JD は JDN に時刻による小数部を足して得られます。JD の小数部 f は、世界標準時(UT)での時刻を次の式で与えます(正午が基準):

  • f = (hour - 12) / 24 + minute / 1440 + second / 86400
  • JD = JDN + f

ここで正午 UT に対応する小数部は 0.0、真夜中(00:00 UT)は 0.5 になります。コンピュータでの表現では、一般に64ビット浮動小数点(倍精度)はユリウス日付を約1ミリ秒精度で保持できます(64ビット浮動小数点の精度参照)。

小数部の時間換算例

JD の小数部と時間の対応例(1日=24時間基準):

  • 0.1 = 2.4 時間 = 144 分 = 8,640 秒
  • 0.01 = 0.24 時間 = 14.4 分 = 864 秒
  • 0.001 = 0.024 時間 = 1.44 分 = 86.4 秒
  • 0.0001 = 0.0024 時間 = 0.144 分 = 8.64 秒
  • 0.00001 = 0.00024 時間 = 0.0144 分 = 0.864 秒

利用例と派生する日数尺度

ユリウス日システムは、異なる暦をまたぐ計算や歴史資料の比較に便利です。任意の二つの日付の間の日数は、それぞれの JDN を引き算するだけで得られます(暦の面倒なうるう年や月長の処理を気にする必要がありません)。また、天文学では扱いやすさから派生尺度が使われます:

  • 修正ユリウス日(MJD):MJD = JD - 2400000.5。桁数を小さくし、日付の切り替えを真夜中に合わせるために導入されました。

歴史的経過と参考事項

初期エポック(紀元前4713年)から現在に至るまででほぼ250万日以上が経過しており(例:JDN 2,400,000 は 1858年11月16日に対応)、将来の大きな節目として JD 2,500,000.0 は 2132年8月31日正午UT に到来します。ユリウス日系列は、異なる歴史的年表や暦を統一して扱うために天文学者が導入したものですが、ゼロ点や名称が「ユリウス暦」と同名である点を誤解しないように注意してください。両者は起点を共有するものの、ユリウス日(JD/JDN)は暦そのものではなく、日数を連続的に数えるための尺度です(減算による日数計算が容易になります)。

実務上の注意

  • 計算式で扱う暦(ユリウス暦かグレゴリオ暦か)を正しく選ぶこと。歴史的資料では紀年法が変わっている場合があります。
  • 時刻を扱う際は常に世界標準時(UT)を基準にすること。ローカルタイムや夏時間は必ず変換する必要があります(正午にを定義に含める理由)。
  • プログラム実装では整数演算と切り捨ての扱いに注意し、境界(正午や真夜中)での丸め誤差を避ける工夫をすること。

参考:ユリウス日付は天文学的計算で広く用いられ、プログラムやデータ交換の際に便利な共通基準を提供します。必要であれば、特定のカレンダー日(グレゴリオ/ユリウス)から JDN を求める具体的なコード例や、逆に JDN から暦日を復元するアルゴリズムも紹介できます(ご希望があれば追加します)。

質問と回答

Q: ユリウス日またはユリウス日数(JDN)とは何ですか?


A: ユリウス日またはユリウス日数(JDN)とは、ユリウス暦において紀元前4713年1月1日月曜日の世界時(UT)正午と定義される最初のエポックからの経過日数を指します。

Q: JDNは、どのように曜日を決定するのに使用できますか?


A: 7で割り切れるJDNはすべて月曜日となります。また、負の値も使用できますが、これは記録された歴史より前のものです。例えば、現在、2022年11月10日(木)15時38分(UTC)のJDNは2459894(更新)です。このJDNを7で割ると余りが3になり、これが曜日を表す整数式で、0が月曜日を表します。

Q:ユリウス暦とは何ですか?


A:ユリウス日付(JD)とは、同じ初期エポックからの経過日数と端数を連続的にカウントしたものです。現在、JDは2459894.1513889です。積分部(その階数)はユリウス日数を示し、分数部はUT正午からの日数を1日または分数日の10進数で示し、0.5はUT午前0時を表します。

Q: 64ビット浮動小数点型変数で、ユリウス日を表すエポックをどの程度の精度で表現できますか?


A: 64ビット浮動小数点型変数は、ユリウス暦の日付として表されるエポックを、通常約1ミリ秒の精度で表現することができます。

Q: "The decimal parts of a Julian date "とはどういう意味ですか?


A: ユリウス暦の小数部は、任意の日付のUT正午からの経過時間を意味し、0.1 = 2.4 時間または 144 分または 8640 秒、0.01 = 0.24 時間または 14.4 分または 864 秒、 0.001 = 0 というように端数として表現されます。


百科事典を検索する
AlegsaOnline.com - 2020 / 2025 - License CC3