通日

 決められた期日からの経過日数を通日といい、単位は日である。
天文計算で用いられる通日には、ユリウス日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関数と同じ値を返す。