Search code examples
phpdatejulian-date

Before 1 CE/AD Algorithms make calendar calculations tricky


I did some more research the following is the output for the respective algorithms:

JD 1099114.5

PHP: 3 Mar 1704 B.C.E. 12:00:00 (PHP Internal convertor) FLN: 0 Mar 1703 B.C.E. 12:00:00 (Fliegel-Van Flandern) MEU: 18 Mar 1703 B.C.E 12:00:00 (Jean Meeus "Astronomical Algorithms, 2nd ed., corrected) RICH: 4 Mar 1703 B.C.E. 12:00:00 (Richards in Explanatory Supplement 3rd Ed.)

Each Algorithm has its issues and quirks about starting times etc.

Meeus assumes that there is a Gregorian year 0 (between -1 and 1), even if this is astronomically correct, it makes little sense from a calendrical perspective. Technically then all the results to convert into Gregorian dates is just wrong?


Solution

  • A useful reference is http://aa.usno.navy.mil/publications/docs/c15_usb_online.pdf, by E. G. Richards, Chapter 15 of the Explanatory Supplement to the Astronomical Almanac 3rd ed., University Science Books, 2013. On page 591 it is explained the currently used notation of negative years for years before AD 1 was introduced by Jacques Cassini in 1740, and there is a year 0 between the years 1 and -1. On page 592 it is stated that the Julian Day Number of Tuesday -4712 January 1 (Julian calendar) is 1. Experimentation will show this can only be if astronomical year numbering includes a year 0. The origin of Julian day numbers is given in the same book in the "Time" chapter by D. McCarthy & B. Guinot, as "1 January 4713 B.C." Nowhere in this book can I find any hint that there should be a difference in how years are numbered depending on whether one is using the Julian or Gregorian calendar.

    The Fourmilab calendar converter https://www.fourmilab.ch/documents/calendar/ is a good converter, with one quirk: it uses negative signs rather than AD/BC for year numbering, but considers the Gregorian calendar to have a year 0, and the Julian calendar to not have a year 0, which I consider to be a mistake. Correcting for this mistake, it says that the original poster's Julian date 1507900 (I assume 1507900.0 exactly) is noon -584 May 22 Gregorian, or -584 May 28 Julian calendar. These dates may be used for comparison in evaluating the correctness of various algorithms.