This applet is from the compact disk accompanies the book Calendrical Calculations: The Millennium Edition by Edward M. Reingold and Nachum Dershowitz (Cambridge University Press, second printing, 2002).

For more information, and any errata, see the site


    1. We have been careful to insure that our conversion functions work for at least 10,000 years before/after the present, but the Chinese code, for example, will not work for the 200th century.
    2. The astronomical code we use is not the best available. Hence, positions and times of astronomical evenets are only approximate. More precise code would be more time-consuming and complex and would not necessarily yield in more accurate results for those calendars that depended on observations, tables, or less accurate calculations. Thus, the correctness of a date on any of the astronomical calendars (Persian, Observational Islamic, French Revolutionary, Chinese, and Future Bahá'í) is contingent on the physical and historical accuracy of the astronomical code used in its calculation. For example, when the equinox occurs close to noon, our Persian calendar may be off a day. Likewise, historically, on the Chinese calendar for Gregorian year 1906, Month 4 began on April 24, not April 23 as shown; this disagreement occurs because our calculations of times of solar and lunar events are more accurate than the seventeenth-century methods used by the Chinese until 1913.
    3. Checking the results of conversions against the historical record is sometimes misleading because the different calendars begin their days at different times. Julian day numbers count days from noon to noon; modified Julian day numbers count days from midnight to midnight; fixed day numbers count days from midnight to midnight.  On the Hebrew and Islamic calendars each day begins the prior evening at local sunset; on the Hindu calendars, each day begins at local sunrise. All of our conversions are as of noon.
    4. All of our functions give "correct" (mathematically sensible) results for negative years and for dates prior to the epoch of a calendar.  However, these results may be culturally wrong. In particular, year 0 is assumed to exist for all calendars except the Julian and the Persian.
    5. The sequence of Hindu months, their names, and the starting month of the new year all differ regionally. We follow the conventions that the solar year begins with Sowramana Ugadi (first of Vaiśākha), and the lunar year with Chandaramana Ugadi (first of Chaitra). Our lunisolar calendar follows the rules of the Sūrya-Siddhānta, as amended by Gaṇesa Daivajna, except that the actual time of sunrise in Ujjain is used. Months are from new moon to new moon. The day numbers of the second ("dark") half of each lunar month typically start over from 1. The solar calendar follows the Orissa rule (one of four or five major variants) and actual sunrise in Ujjain, which can differ by a day or two from the rules used elsewhere.
    6. The astronomical Islamic calendar is an approximation based on one simple way of estimating when the new cresent moon should become visible in Cairo; however, the actual date may depend on reported observations of the crescent moon.  Thus, month beginnings and endings can be in error by a day or so, and vary from country to country.
    7. The year in the French Revolutionary calendar date is not spelled correctly; it should be "Année de la République".