ユリウス通日

**ユリウス通日**（ユリウスつうじつ、Julian Day、JD）は、ユリウス暦紀元前4713年1月1日、すなわち西暦 -4712年1月1日の正午（世界時）からの日数である。単に**ユリウス日**（ユリウスび）ともいう。時刻値を示すために一般には小数が付けられる。

例えば、協定世界時（UTC）での年日のユリウス通日の値は、おおむねである。

## ユリウス通日
ユリウス通日はユリウス暦紀元前4713年1月1日（先発グレゴリオ暦では紀元前4714年11月24日、西暦 -4713年11月24日）の正午（世界時）を元期（＝0日目）とし、日の単位で数える。ユリウス通日は天文時の伝統に従い、日の起点は正午である。したがって、世界時の正午に日数（の整数部分）が増加する。

ユリウス通日は二時点の間の日数や秒数を計算するのに便利で、天文学やなどで使われている。小数を付けることにより時・分・秒数（と更に、その小数）を表現することができる。

### 起点が正午である理由

ユリウス通日は、天体観測に便利なように正午を起点にしている。つまり、天体観測は通常は夜間に行われるので、夜の0時（正子）の時点で日付が変わる（ユリウス通日の整数部分が増加する。）のは、不便で間違いも起こりやすい。このためユリウス通日は、正午の時点で日付が変わるように決められたのである。この慣習は「天文時」の時刻系の伝統であり、クラウディオス・プトレマイオス(2世紀頃)に始まるものである。

正午を一日の起点にする理由はもう一つある。均時差を捨象すれば、太陽の南中を観測することにより、その地点の地方時での正午は容易に知れる。これに対して正子を認識することは、正確な時計が存在しない時代には困難である。

なお、天文時の日の起点を正午とする時刻系は通常一般の時刻系と紛らわしいので、1925年1月1日からは天文学ではユリウス通日を除き、「天文時」を廃止し、正子（真夜中）を日界（1日の始まり、かつ、1日の終わりの時点）とする「常用時」に統一された。しかし、ユリウス通日については、1925年以降も継続して正午を起点としている。

### 換算計算サービス
日本の国立天文台の暦計算室のページで、グレゴリオ暦からもユリウス暦（1582年10月4日以前）からも、秒単位でユリウス通日と修正ユリウス日が簡便に換算できる。結果は小数5桁で表示される。

また、アメリカ海軍天文台（USNO）のページでは、0.1秒単位の換算が可能であり、結果は小数6桁で表示される。

## ユリウス通日の変種
### Julian Day Number (JDN)
日を整数で数える値を Julian Day Number (JDN) と呼ぶ。その日（この場合の「日」は「常用時」における日、すなわち正子から正子までの日である。）の正午（世界時）のユリウス通日（JD）に等しい。整数値であるから、JDNには時刻の概念はない。

例えば、協定世界時（UTC）での年日の JDN は、である。

### 修正ユリウス日（MJD）

修正ユリウス日（Modified Julian Date：MJD）は、ユリウス通日から2 400 000.5を差し引いたものである。ユリウス通日の2 400 000.5 は、1858年11月17日正子UT に当たるので、この時点を元期としていることになる。常用時と同様に世界時の正子に日数が増加する（ユリウス通日とは異なる）。

例えば、協定世界時（UTC）での年日の MJD は、おおむね である。

#### 修正ユリウス日が導入された理由
ユリウス通日では桁が多すぎて不便な場合に、MJDが使われる。元々は、整数部の桁数を5桁に収めるように、スミソニアン天体物理観測所（SAO）の宇宙科学者が1957年に考案したものである。これはソ連のスプートニクの軌道を追跡するために用いられたIBM 704コンピュータの記憶容量が小さく、桁数を少なくする必要があったためである。

ユリウス通日の値は19世紀後半（1858年11月17日）から22世紀前半（2132年8月31日）までは、2 400 000台の数値であり、現代における利用には整数部が5桁のMJDで十分に実用的と考えられたのである。

### リリウス日（LD）
Lilian Day number（LD、リリウス日）はグレゴリオ暦使用開始日の1582年10月15日を第1日とした通算の日数で整数値のみを取る（小数を付することはない）。また、0（ゼロ）日から始まるのではないことに注意が必要である。

復活祭の日付を決定するために使われる（コンプトゥスを参照）。ユリウス通日から2 299 159.5を差し引いて、小数部を切り捨てたものである。2000年01月01日のリリウス日 = 152 385 である。

例えば、協定世界時（UTC）での年日のリリウス日の値は、である。

### Chronological Julian Day（CJD）
Chronological Julian Day（CJD）は、ユリウス通日に0.5を加え、かつタイムゾーン(time zone)を考慮したものを指す。したがって標準時（地方時）の正子に日数（の整数部分）が増加する。日本ではCJDはほとんど使われない。

CJDを使用する環境では、CJDとJDとの区別を明確にするために、JDをAstronomical Julian Dateと呼んで、AJDと略称することがある。

## ユリウス通日の考案
ユリウス通日は1583年にスカリゲル（）（1540年-1609年）によって考案された。スカリゲルは1582年のグレゴリオ暦改暦によってにおける日付けの計算が煩雑かつ混乱してしまうことを予想して、ユリウス暦、グレゴリオ暦双方での日付の換算や日数計算の便のためにこれを考案した。

スカリゲルが基準にした紀元前4713年は、以下の3つの周期の第1年目が重なる年であった。
* （28年） - 日付と七曜が揃う周期
* 太陰章（メトン周期）（19年） - 月相（月の満ち欠け）と日付が揃う周期
* インディクティオ（15年） - ローマ帝国での徴税額の査定更正周期

以上の3つの周期が揃うには7980年 (28,19,15の最小公倍数)を要する。これをユリウス周期という。ただし、ユリウス通日そのものは永遠に続く値であって周期性があるわけではないので、「周期」の意味はもはやなくなっている。

その後、天文学者ジョン・ハーシェルが1849年の著書*Outlines of Astronomy*で日数や時間の計算にユリウス通日を利用する方法を考案した。これが広まり、世界中の天文学者が日数計算にユリウス通日を用いるようになった。

### 「ユリウス通日」の名の由来
なぜ、「ユリウス」の名を冠したのかについては2つの説がある。

一つ目は、スカリゲルの父の名前であるジュール・セザール・スカリジェ（ラテン語音はユリウス・カエサル・スカリゲル、1484年-1558年）から取られたものであるという説である。

二つ目は、ユリウス暦の名の由来となったジュリアス・シーザー（ラテン語音はガイウス・ユリウス・カエサル）によるものであるという説である。国立天文台はこの説を採用している。

## 西暦と修正ユリウス日との相互換算
以下に西暦の年月日と修正ユリウス日との換算式を示す。換算式は、Fliegel and Van Flandern、Hatcher、Meeusによって考案されている。ただしこれらに整理を施した換算式が使われることも多い。
* なお本来は純粋に整数だけの計算であるが、下記のように浮動小数点計算を経由する形も少なくない。
* どの計算式も、月の値（m）は、1月、2月を用いず、前年の13月、14月が用いられる。

### グレゴリオ暦から修正ユリウス日への換算
グレゴリオ暦 *y* 年 *m* 月 *d* 日午前0時の修正ユリウス日は次式で表される。
: \mathit{MJD} = \lfloor 365.25 y \rfloor + \lfloor y / 400 \rfloor -  \lfloor y / 100 \rfloor + \lfloor 30.59(m - 2) \rfloor + d - 678~912

* 例: 2012年1月1日
: *y* = 2011, *m* = 13, *d* = 1 より、修正ユリウス日は **55 927** である。
:: \mathit{MJD} = {\lfloor 365.25 \times 2011 \rfloor + \lfloor 2011 / 400 \rfloor -  \lfloor 2011 / 100 \rfloor + \lfloor 30.59(13 - 2) \rfloor + 1 - 678~912} = 55~927

### ユリウス暦から修正ユリウス日への換算
ユリウス暦 *y* 年 *m* 月 *d* 日午前0時の修正ユリウス日は次式で表される。
: \mathit{MJD} = \lfloor 365.25 y \rfloor + \lfloor 30.59 (m - 2) \rfloor + d - 678~914

* 例: 1582年2月1日
: *y* = 1581, *m* = 14, *d* = 1 より、修正ユリウス日は **-101 086** である。
:: \mathit{MJD} = {\lfloor 365.25 \times 1581 \rfloor + \lfloor 30.59(14 - 2) \rfloor + 1 - 678~914} = -101~086

### 修正ユリウス日からグレゴリオ暦への換算
修正ユリウス日 *MJD* の日のグレゴリオ暦（*y* 年 *m* 月 *d* 日）は次式で表される。
: \begin{align}
n &= \mathit{MJD} + 678~881 \\
a &= 4 n + 3 + 4 \left\lfloor \frac{3}{4} \left\lfloor \frac{4 (n + 1)}{146~097} + 1\right\rfloor  \right\rfloor \\
b &= 5 \left\lfloor \frac{a\, \bmod 1461}{4} \right\rfloor + 2 \\
(y, m, d) &= \bigg( \left\lfloor \frac{a}{1461} \right\rfloor, \left\lfloor\frac{b}{153}\right\rfloor + 3, \left\lfloor\frac{b\, \bmod 153}{5}\right\rfloor + 1 \bigg)
\end{align}

### 修正ユリウス日からユリウス暦への換算
修正ユリウス日 *MJD* の日のユリウス暦（*y* 年 *m* 月 *d* 日）は次式で表される。
: \begin{align}
n &= \mathit{MJD} + 678~883 \\
a &= 4 n + 3 \\
b &= 5 \left\lfloor \frac{a\, \bmod 1461}{4} \right\rfloor + 2 \\
(y, m, d) &= \bigg( \left\lfloor \frac{a}{1461} \right\rfloor, \left\lfloor\frac{b}{153}\right\rfloor + 3, \left\lfloor\frac{b\, \bmod 153}{5}\right\rfloor + 1 \bigg)
\end{align}

### 紀元前や初期のユリウス暦の換算における注意点

本節では、天文学における紀年法に従い、紀元1年（ = 西暦1年）の前年の紀元前1年を西暦0年としている。負の年号である西暦 -4712年は紀元前4713年を指す。

また本節では、ユリウス暦、グレゴリオ暦ともに、暦の規則をそのまま過去に遡って適用することを仮定しており、正確には先発ユリウス暦、先発グレゴリオ暦を指している。

## ユリウス通日の具体例
### ユリウス通日の具体例
以下にユリウス通日の具体例を示す。
2 400 000.5 の例を除いて、いずれも世界時(UTC)の12時（正午）の値である。

### 修正ユリウス日の具体例
以下にユリウス通日の具体例を示す。いずれも世界時での正子での値である。

## ユリウス通日の利用
ユリウス通日は1日に1ずつ増えるため、ユリウス通日または修正ユリウス日から曜日や干支などを求めることができる。この場合、正子に日数が増加する修正ユリウス日を用いるほうが間違いが起こらない。以下は、すべて修正ユリウス日による求め方である。

### 七曜日の求め方
該当日の修正ユリウス日を7で割り、余りを求める。下記の換算表により曜日を求める。これは本質的にはツェラーの公式と同じである。

*例: 2012年1月1日
:修正ユリウス日は55 927である。7で割ると7989余り4となる。よって、曜日は日曜日である。

### 十二支の求め方
該当日の修正ユリウス日を12で割って余りを求める。下記の換算表により十二支を求める。

*例: 2012年1月1日
:修正ユリウス日は55 927である。12で割ると4660余り7となる。よって、十二支は酉である。

### 十干の求め方
該当日の修正ユリウス日を10で割って余りを求める。下記の換算表により十干を求める。

*例: 2012年1月1日
:修正ユリウス日は55 927である。10で割ると5592余り7となる。よって、十干は辛である。

### 干支紀日の求め方
該当日の修正ユリウス日を60で割って余りを求める。下記の換算表により干支による紀日を求める。

*例: 2012年1月1日
:修正ユリウス日は55 927である。60で割ると932余り7となる。よって、干支紀日は辛酉である。

## その他
*Google検索のdaterangeオプションでは、日付を指定するのにユリウス通日を用いるようになっている。
*データ長が16ビットの修正ユリウス日を日付表現に使用しているシステムでは、16ビットで表せる整数の最大値である65535にあたる2038年4月22日までしか表現できず、この次の日である23日を迎えると、桁あふれが発生してしまう**2038年問題**が存在する。 （2038年問題とは別物）

## 脚注

### 注釈

### 出典

## 関連項目
*ユリウス年
*ISO 8601 - 日付と時刻の表記に関する標準
*UNIX時間 - 計算機で使われている時刻。1970年1月1日深夜（午前0時0分0秒）からの秒数を数える。
*Rata Die - 先発グレゴリオ暦の西暦1年1月1日からの日数。

## 外部リンク
* ユリウス日について（国立天文台）

### 換算計算
* Julian Date Converter Astronomical Applications Department, The United States Naval Observatory (USNO), US Navy（0.1秒単位の換算が可能で、結果は小数6桁で表示される）
* https://eco.mtk.nao.ac.jp/cgi-bin/koyomi/cande/date2jd.cgi 国立天文台 > 暦計算室 > 暦象年表 > 年月日時分秒→ユリウス日の換算（1秒単位の換算が可能で、結果は小数5桁で表示される）
* https://eco.mtk.nao.ac.jp/cgi-bin/koyomi/cande/jd2date.cgi 国立天文台 > 暦計算室 > 暦象年表 > ユリウス日→年月日時分秒の換算
*日時とユリウス日の変換 - 世界時(UT) と日本時(JST)の両方の時分までの換算に対応。
*換暦 - 和暦、グレゴリオ暦、ユリウス暦、ユリウス日などの相互換算を行う。日付のみの換算であり、時分秒の換算はできない。