在1 CE / AD算法之前使日历计算变得棘手

时间:2017-08-06 04:58:11

标签: php date julian

我做了一些研究,以下是相应算法的输出:

JD 1099114.5

PHP:1704年3月3日B.C.E. 12:00:00(PHP内部转换器) FLN:1703年3月0日B.C.E. 12:00:00(Fliegel-Van Flandern) MEU:1703年3月18日B.C.E 12:00:00(Jean Meeus" Astronomical Algorithms,2nd ed。,更正) RICH:1703年3月4日B.C.E. 12:00:00(Richards in Explanatory Supplement 3rd Ed。)

每个算法都有关于开始时间的问题和怪癖等。

Meeus假设格里高利年0(介于-1和1之间),即使这是天文数字正确的,从历法角度来看也没什么意义。从技术上讲,转换成格里高利日期的所有结果都是错误的吗?

2 个答案:

答案 0 :(得分:1)

有用的参考文献是[{3}},EG Richards,天文年历解释性补充第3版,大学科学书籍,2013年第15章。在第591页,它被解释雅克卡西尼于1740年引入了AD 1之前多年的负面年份,而且在1年和-1年之间 为0年。在第592页,声明星期二-4712 1月1日(朱利安日历)的朱利安日数为1.实验将显示这只能是天文年编号包括0年。朱利安日数的来源在同一本书"时间" D. McCarthy& amp; B. Guinot,as" 4月1日4713 B.C。"在本书的任何地方,我都可以找到任何暗示,根据是否使用朱利安历法或公历,数字的年数应该有所不同。

Fourmilab日历转换器http://aa.usno.navy.mil/publications/docs/c15_usb_online.pdf是一个很好的转换器,有一个怪癖:它使用负号而不是AD / BC进行年份编号,但认为公历是0年,朱利安历是没有一年0,我认为这是一个错误。纠正这个错误,它说原始海报的朱利安日期1507900(我假设1507900.0确切)是中午-584 5月22日格里高利,或-584梅5月28日朱利安日历。这些日期可用于评估各种算法的正确性。

答案 1 :(得分:0)

Meeus'算法实际上是错误的(感谢Paul指出这一点)阳历年应该没有0,这意味着Gregorian第1年之前的所有日期(即Gyr <0)都是错误的。 Post Gyr(Gyr> = 1)被正确转换。此外,他只有1582G后的日期转换器。

因此,似乎正确的日期是由PHP提供的jdtogregorian转换器列出的。