ユリウス通日

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ユリウス通日ユリウスつうじつ、Julian Day、AJD)とは紀元前4713年1月1日正午(世界時による)からの日数である。単にユリウス日ユリウスび)ともいう。

目次

概説 [編集]

ユリウス通日(Julian Day)(AJD) [編集]

数年にわたる2時点の間の日数や秒数を計算するのに便利で、天文学年代学Chronology)などで使われている。天体観測に便利なように正午を起点にしている。つまり、天体観測は通常は夜間に行われるので、夜の0時(世界時)の時点でユリウス通日が増加するのではなく、正午の時点で1日だけ増加するように決められたのである。

修正ユリウス日(MJD) [編集]

ユリウス通日では桁が多すぎるため、ユリウス通日から2 400 000.5を差し引いた修正ユリウス日(MJD)(1858年11月17日0000UT元期)も広く使われている。この修正ユリウス日では、夜の0時に日数が増加する。ユリウス通日は、前記のとおり、世界時午前0時の値に小数 0.5が付くが、そうならないようユリウス通日に0.5及びタイムゾーン(time zone)を考慮したChronological Julian Day(CJD)(en:Julian day#Alternatives)もあるが、日本ではほとんど使われない。

リリウス日(LD) [編集]

Lilian Day number(LD、リリウス日)はグレゴリオ暦使用開始日の1582年10月15日からの通算の日数で、復活祭の日付を決定するために使われる。

LD = \lfloor AJD - 2\ 299\ 160.5 \rfloor = \lfloor MJD + 100\ 841 \rfloor である。

したがって、リリウス日では、正午ではなく夜の0時に日数が増加する。ここで、 \lfloor x \rfloor は、床関数である。

歴史 [編集]

ユリウス通日は1583年にスカリゲル(Joseph Justus Scaliger)によって考案された。スカリゲルは1582年のグレゴリオ暦改暦によって年代学Chronology)における日付けの計算が煩雑かつ混乱してしまうことを予想して、ユリウス暦グレゴリオ暦双方での日付けの変換や日数計算の便のためにこれを考案したのである。ユリウス通日の名はスカリゲルの父の名前であるジュリアス・シーザー・スカリゲル(Julius Caesar Scaliger)から取られたものであって、ユリウス暦の名の由来となったジュリアス・シーザーとは直接の関係はないと「一般的には」言われている。

スカリゲルが基準にした紀元前4713年は、以下の周期の第1年目が重なる年である。

太陽章Solar cycle (calendar))(28年)
ある日の七曜が同じとなる周期
太陰章(メトン周期)(19年)
ある日の月相(月の欠け方)が同じとなる周期
インディクティオ(15年)
ローマ帝国での徴税額の査定更正周期

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

ユリウス通日 Julian Day の計算 [編集]

ユリウス通日は,西暦(グレゴリオ暦およびそれ以前のローマのユリウス暦)の年月日から、以下の手順で求めることができる[1]。 求める日付は YYYYMMDDHH 時と表されるとする。 (YYYY等の文字数は,桁数を表している) なお、関数 INT(x)x の整数部を与えるもので、正の値x>0については 床関数 \lfloor x \rfloor に等しい。

(1) MM > 2 ならば  y = YYYY, m = MM とおく。MM = 1 または MM = 2 ならば y = YYYY-1, m = MM + 12 とおく。

(2) 日付が 1582年10月15日以降(つまり グレゴリオ暦 の日付)であれば、A, BA = INT(y/100), B = 2 - A + INT(A/4) で求める。B は400年に一度の閏年の調整に対応する。 1582年10月15日の前日まで(1582年10月4日以前)の場合は、グレゴリオ暦で導入された 400 年に一度の補正がないため AB を求める必要はないが、便宜上 B = 0 とする.

すると、 ユリウス通日(Julian Day) は

(3) JD = INT(365.25 y) + INT(30.6001 ( m + 1) ) + DD + (hh/24) + 1720\ 994.5 + B で与えられる。

たとえば、日付 1957/10/04.81 は y = 1957, m = 10 で,1582/10/15 以降なので、 A = INT(1957/100) = \lfloor 1957/100 \rfloor = 19, B = 2 - 19 + INT(A/4) = 2 - 19 + 4 = - 13 から JD = INT(365.25 \times 1957) + INT(30.6001 \times 11) + 4.81 + 1720\ 994.5 - 13 = 2436\ 116.31 となる。

曜日 (Day of week) は、次のようにして求められる: その日付の 0 時の JD を求め、1.5 を加え、7 で割った余りを求める。 あまりが 0 なら日曜、1 なら月曜、以下同じく 6 なら土曜日となる。

四柱推命にもとづく運命星などは,同様に基準となる日の JD から日数の差分をもとめて,60 で割った余りで求めることができる.

フリーゲルの公式 [編集]

グレゴリオ暦からの換算 [編集]

グレゴリオ暦から修正ユリウス日を計算するには次の公式を使う。グレゴリオ暦y年m月d日午前0時の修正ユリウス日は、x以下で最大の整数を床関数 \lfloor x \rfloorで表すと、

\lfloor 365.25 y \rfloor + \lfloor y / 400 \rfloor -  \lfloor y / 100 \rfloor + \lfloor 30.59 ( m - 2 ) \rfloor + d - 678\ 912

ただし1月、2月は前年の13月、14月として計算し、各項において(合計値ではなく)小数点以下を切り捨てる。

  • 例)2012年1月1日

y=2011, m=13, d=1なので

\lfloor 365.25 \times 2011 \rfloor + \lfloor 2011 / 400 \rfloor -  \lfloor 2011 / 100 \rfloor + \lfloor 30.59 ( 13 - 2 ) \rfloor + 1 - 678\ 912
= 734\ 517 + 5 - 20 + 336 + 1 - 678\ 912 = 55\ 927

となり、55 927が修正ユリウス日となる。

ユリウス暦からの変換 [編集]

ユリウス暦から修正ユリウス日を計算するには次の公式を使う。ユリウス暦y年m月d日午前0時の修正ユリウス日は、x以下で最大の整数を床関数 \lfloor x \rfloorで表すと、

\lfloor 365.25 y \rfloor + \lfloor 30.59 ( m - 2 ) \rfloor + d - 678\ 914

ただし1月・2月は前年の13月・14月として計算し、各項において(合計値ではなく)小数点以下を切り捨てる。

  • 例) 1582年2月1日

y=1581、m=14、d=1なので

\lfloor 365.25 \times 1581 \rfloor + \lfloor 30.59 ( 14 - 2 ) \rfloor + 1 - 678\ 914
= 577\ 460 + 367 + 1 - 678\ 914 = -101\ 086

となり、-101 086が修正ユリウス日となる。

紀元前の場合、修正ユリウス日を計算するには次の公式を使う。紀元前y年m月d日午前0時の修正ユリウス日は、x以下で最大の整数を床関数 \lfloor x \rfloorで表すと、

\lfloor 365.25 y - 0.75\rfloor + \lfloor 30.59 ( m - 2 ) \rfloor + d + 366 - 678\ 914

ただし、yは負数にして計算する。

また1月、2月は前年の13月、14月として計算し、各項において(合計値ではなく)小数点以下を切り捨てる。

  • 例) 紀元前4713年1月1日

y=-4714、m=13、d=1なので

\lfloor 365.25 \times ( -4714 ) - 0.75 \rfloor + \lfloor 30.59 ( 13 - 2 ) \rfloor + 1 + 366 - 678\ 914
= -1721\ 790 + 336 + 1 + 366 - 678\ 914 = -2\ 400\ 001

となり、-2 400 001が修正ユリウス日となる。

ただし、初期のユリウス暦(紀元前45年 - 紀元前8年)では閏年を3年に1度実施していたため、実際の暦日とは合致しない。この式が利用できるのは、紀元4年3月1日以降である。ユリウス日の算定は、グレゴリオ暦開始(1582年)以前はすべて4年に1度閏年が実施されたと仮定している。

通日数の計算 [編集]

グレゴリオ暦(400年周期)の通日数は下記のような性質を持っている。\,(y + 400 \times i)\,m+3月\,d+1日(\,i \ge 0\,m+3月∈{3月、4月、...、12月、13月、14月}、13月と14月は翌年のこと)に対して、

  • 通日数計算[2]
N(y,m,d) = N(y) + n(m,d) + N(0,0,0)
N(y) = 365 y +\lfloor y/4 \rfloor-\lfloor y/100 \rfloor+\lfloor y/400 \rfloor
n(m,d) = \lfloor (153 m+2)/5 \rfloor + d
  • 逆変換として、\,400 \times i年3月1日から\,N日後の\,(y + 400 \times i)\,m+3月\,d+1日を求める計算は[3]
e = 4 N +3 +\lfloor (\lfloor (N+1) \times 4/146097 \rfloor +1) \times 3/4 \rfloor \times 4
y = \lfloor e/1461 \rfloor
n = \lfloor (e \ \bmod \  1461) /4 \rfloor
h = 5 n+2
m = \lfloor h/153 \rfloor \ \bmod \  12
d = \lfloor (h \ \bmod \  153)/5 \rfloor

なおユリウス暦(4年周期)の場合の通日数は計算式の一部に変更を加える必要がある。

N(y) = 365 y + \lfloor y/4 \rfloor
e = 4 N + 3

ユリウス通日から曜日等を求める [編集]

ユリウス通日は1日に1ずつ増えるため、当日のユリウス通日または修正ユリウス日が判明すれば曜日干支などを求めることができる。

七曜日の求め方 [編集]

該当日の修正ユリウス日を7で割り、余りを求める。余りが0より小さい場合は7を加える。下記の換算表により曜日に変換する。これは本質的にはツェラーの公式と同等である。

修正ユリウス日による曜日の換算表
余り 0 1 2 3 4 5 6
曜日

例:

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

十二支の求め方 [編集]

該当日の修正ユリウス日を12で割って余りを求める。余りが0より小さい場合、12を加える。余りを下記の換算表により十二支に変換する。

修正ユリウス日による十二支の換算表
余り 0 1 2 3 4 5 6 7 8 9 10 11
十二支

例:

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

十干の求め方 [編集]

該当日の修正ユリウス日を10で割って余りを求める。余りが0より小さい場合、10を加える。余りを下記の換算表により十干に変換する。

修正ユリウス日による十干の換算表
余り 0 1 2 3 4 5 6 7 8 9
十干

例:

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

干支紀日の求め方 [編集]

該当日の修正ユリウス日を60で割って余りを求める。余りが0より小さい場合、60を加える。余りを下記の換算表により干支による紀日に変換する。

修正ユリウス日による干支の換算表
余り 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
干支 甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥 甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉 甲戌 乙亥 丙子 丁丑 戊寅 己卯 庚辰 辛巳 壬午 癸未
余り 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
干支 甲申 乙酉 丙戌 丁亥 戊子 己丑 庚寅 辛卯 壬辰 癸巳 甲午 乙未 丙申 丁酉 戊戌 己亥 庚子 辛丑 壬寅 癸卯 甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥 壬子 癸丑

例:

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

その他 [編集]

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

参考文献 [編集]

  1. ^ Jean Meeus, Astronomical Formulae for Calculators, Fourth ed., Willmann-Bell Inc., 1982
  2. ^ Fliegel, H. F. and Van Flandern, T. C., "A machine algorithm for processing calendar dates," Communications of the Association for Computing Machinery, vol. 11 (1968), p. 657
  3. ^ Richards, E. G., Mapping Time: The Calendar and Its History, Oxford: Oxford University Press, 1998

関連項目 [編集]

外部リンク [編集]

  • 日時とユリウス日の変換 - 世界時(UT) と日本時(JST)の両方の時分までの換算に対応。
  • 換暦 - 和暦、グレゴリオ暦、ユリウス暦、ユリウス日などの相互変換を行う。日付のみの換算であり、時分の換算はできない。