Before 1 CE/AD 算法使日历计算变得棘手

Before 1 CE/AD Algorithms make calendar calculations tricky

我做了更多研究,以下是各个算法的输出:

京东1099114.5

PHP:1704 年 3 月 3 日 B.C.E。 12:00:00(PHP 内部转换器) FLN:1703 年 3 月 0 日 B.C.E。 12:00:00(弗莱格尔-范弗兰德恩) MEU:1703 年 3 月 18 日 B.C.E 12:00:00(Jean Meeus“天文算法,第 2 版,更正) 丰富:1703 年 3 月 4 日 B.C.E。 12:00:00(理查兹在解释性增补第 3 版中)

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

Meeus 假设有公历 0 年(介于 -1 和 1 之间),即使这在天文学上是正确的,但从日历的角度来看却毫无意义。从技术上讲,所有转换为公历日期的结果都是错误的?

Meeus 的算法实际上是错误的(感谢 Paul 指出这一点)公历年中不应该有 0,这意味着公历 1 年之前的所有日期(即 Gyr < 0)都是错误的。 Post 吉尔 (吉尔 >= 1) 已正确转换。此外,他只有日期 post 1582G.

的转换器

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

一个有用的参考是 http://aa.usno.navy.mil/publications/docs/c15_usb_online.pdf,作者 E. G. Richards,天文年历解释性增补第 15 章 第 3 版,大学科学书籍,2013 年。关于第 591 页解释了在 1740 年 Jacques Cassini 引入 AD 1 之前的年份当前使用的负年份表示法,并且 在第 1 年和 -1 之间的第 0 年。在第 592 页上指出,星期二 -4712 年 1 月 1 日(儒略历)的儒略日数为 1。实验将表明,只有当天文年编号包括年份 0 时,这才会是 1。儒略日数字的起源在D. McCarthy 和 B. Guinot 在 "Time" 章节中的同一本书,作为“4713 年 1 月 1 日 B.C”。在本书的任何地方,我都找不到任何提示,表明年份的编号方式应该有所不同,具体取决于使用的是儒略历还是公历。

Fourmilab 日历转换器 https://www.fourmilab.ch/documents/calendar/ 是一个很好的转换器,有一个怪癖:它使用负号而不是 AD/BC 作为年份编号,但认为公历的年份为 0,并且儒略历没有 0 年,我认为这是一个错误。纠正这个错误,它说原始海报的 Julian 日期 1507900(我假设 1507900.0 正好)是公历 -584 日 5 月 22 日中午,或 -584 日 5 月 28 日儒略历。这些日期可用于比较各种算法的正确性。