由儒略日推算历日 将JD加上0.5,令 Z 为其整数部分,F 为尾数(小数)部分。
若 Z < 2299161,取A = Z
若 Z 大于等于2299 161,计算 α=INT((Z-1867216.25)/36524.25) ,A=Z+1+α-INT(α/4)
然后计算
B = A+1524
C = INT((B-122.1)/365.25)
D = INT(365.25C)
E = INT((B-D)/30.6001)
该月日期(带小数部分)则为:d = B - D - INT(30.6001E) + F
月份m为:
IF E < 14 THEN m = E – 1
IF E=14 or E=15 THEN m = E – 13
年份为y:
IF m>2 THEN y = C – 4716
IF m =1 or m=2 THEN y = C – 4715
这个公式里求E时用的数30.6001不能代之以30.6,哪怕计算机没有先前所说的问题。否则,你得到的结果会是2月0日而不是1月31日,或者4月0日而不是3月31日。
15. 如 E < 14,則 E = 自本儒略年年初(即由 1 月 1 日起)開始至今的完整月數 + 1,故 m = E - 1;而 C - 4 = 自 BC 4713-01-01 00:00 GMT 起經歷的完整儒略年,故 y = C - 4 - 4713 + 1 = C - 4716。最後的 +1 是因為 BC 1 之後是 AD 1 而沒有 AD 0,即沒有公元 0 年,故 -4713 其實是多減了 1 年,需要補回。
16. 如 E > 13,則 E = 自上儒略年年初(即由 1 月 1 日起)開始至今的完整月數 + 1,故 m = E - 1 - 12;而 C - 4 = 自 BC 4713-01-01 00:00 GMT 起經歷的完整儒略年 - 1 年,故 y = C - 4 + 1 - 4713 + 1 = C - 4715。