決められた期日からの経過日数を通日といい、単位は日である。
天文計算で用いられる通日には、ユリウス日JDや修正ユリウス日MJDがある。
(1)ユリウス日
紀元前4713年1月1日12時UTからの経過日数をユリウス日JDという。
(2)修正ユリウス日
西暦1858年11月17日0時UTからの経過日数を修正ユリウス日MJDという。
ユリウス日JDは、桁数が多いので、桁数が少なくてすむ、修正ユリウス日MJDも使用される。
(3)計算方法
ユリウス日JDと修正ユリウス日MJDとの関係は、次の式で表される。
JD=MJD+2400000.5
修正ユリウス日MJDの起算日である、西暦1858年11月17日0時UTは、
ユリウス日JDで、2400000.5日である。
修正ユリウス日MJDを求めることにより、ユリウス日JDを得ることができる。
ユリウス暦は西暦1582年10月4日までとし、翌日をグレゴリオ暦の西暦1582年10月15日とする。
ユリウス暦は、西暦年数が4で割り切れる年を閏年とする。
グレゴリオ暦は、西暦年数が4で割り切れる年を閏年とするが、400で割り切れる年は閏年としない。
修正ユリウス日MJDを求める方法を次に示す。
修正ユリウス日MJDを求めたい日付をY年M月D日Hh時Mm分とする。
このときの時刻は、地方平均太陽時LMTを使用し、その場所の経度をLONとする。
地方平均太陽時LMTと世界時UTとの関係は、次の式で表される。
LMT=UT+24×LON/360
日本中央標準時JSTとの関係は、次の式で表される。
LMT=JST+24×(LON−135)/360
経度LONの値は、東経を正、西経を負とする。
もし、年数が紀元前の場合は、Y=−Y+1 とし、0を含む負の数で表す。
その上で、YY=Y、MM=M、DD=D、LMT=Hh+Mm/60 として、
もしMM<3のとき、YY=YY−1、MM=MM+12 とすれば、
MJD=floor(365.25×YY)+floor(30.59×(MM−2))+DD+LMT/24
MDJ=MJD−LON/360−678914 となり、
もしMJD≧−100840のとき、MJD=MJD+floor(YY/400)−floor(YY/100)+2
として、修正ユリウス日MJDを求めることができる。
グレゴリオ暦の開始日である、西暦1582年10月15日0時UTは、
修正ユリウス日MJDで、−100840日である。
floor関数は、小さい方の最も近い整数を値として返す。
POV-Rayのint関数は、整数部を値として返すので、値が負のとき、一般的なint関数とは返ってくる値が異なる。
一般的なint関数はPOV-Rayのfloor関数と同じ値を返す。