About the Calendars

The calendars supported by this conversion facility are generally more-or-less historic calendars, though in some features they may behave anhistorically. I'm planning to add some other "invented" calendars as well (there's a calendar that isn't invented??), including ones from various works of fiction... if anyone has any that seem fun.

The sketches presented here are not intended to give you much information about the calendars used. For that, there are plenty of resources on the net. Good places to start include Yahoo's list of Calendar references and CalendarLand. This is just some quick info mostly to explain some the behavior of the converter.


The Gregorian calendar is the standard one used in most of the Western world today. It is derived from a 16th century modification to the pre-existing Julian calendar (see below), needed to correct some inaccuracies due to too many leap years. Because of the changeover, historical Western calendars show a discontinuity days when the changeover occured, as days ten-odd days were removed from the calendar in order to correct the error. The exact time of the changeover varies by country; in the Holy Roman Empire it happened in 1582, in England and its colonies it happened in 1752 (type "cal 1752" on a UNIX system and look at September), and in other countries at other times.

The calendar used here is an "proleptic" Gregorian calendar, which means it's the Gregorian calendar projected back (and forth) in time, even to dates when it didn't historically exist. So there is no such discontinuity in this Gregorian calendar: the dates simply march backwards through time uninterrupted, but at some point part company with historical reality. So there is a perfectly sensible 1 January 1, even though there was no year 1 in the Gregorian calendar (in fact, it falls on January 3 of the Julian calendar).

Similarly, since the Gregorian dates before 1582 (or whenever) are fictitious, we can invent fiction any way we like. So not only are there Gregorian dates that never happened, but this includes the year-numbering. There never was a year 0, but I'm making this up anyway, so by fiat the year that precedes 1 on the Gregorian calendar is designated Year 0. And before that came Year -1. I'm following the convention used in Reingold & Dershowitz of designating Gregorian years with positive and negative numbers and zero (but see below for Julian dates).


The Julian calendar is very similar to the Gregorian calendar (which it predates), differing only in the leap-year structure. As with the Gregorian calendar, the one used here is projected forward and backward in time without regard for history. However, since Julian year numbers have been used (and are used) in discussing history before the year 1 C.E., the usual conventions for that are followed. Namely, there is no Year 0; the year before 1 C.E. is 1 B.C.E. and so on. Thus, if you ask for a date in Year 0, it's the same as if you asked for Year 1 B.C.E. (i.e., 0 is a synonym for -1).

Modified French Revolutionary

The French Revolutionary calendar was in use between 1793 and 1805, and again briefly in 1871. It was invented as an attempt to "rationalize" the calendar and regularize it, and also divorce it from mythological underpinnings. In its original form, it used precise astronomical calculations, so its leap year structure was not fixed, but simply happened whenever consecutive Autumnal Equinoxes (the first day of the year) happened 366 days apart. Since that's a lot trickier to code, I've implemented the "modified" form of the calendar, using modifications proposed Gilbert Romme in 1795. The calendar was abandoned before the modifications were ever accepted, but it gives us a nice simple arithmetical system for computing the calendar.

Dates are given by "weekday," decade, month, and year. The decade is not a cycle of ten years but of ten days, the equivalent of a week (using the more "rational" number ten rather than the seven-day week whose origins were considered steeped in superstition). The days of the decade are named Primidi, Duodi, Tridi, Quartidi, Quintidi, Sextidi, Septidi, Octidi, Nonidi, and Decadi. So Duodi of Decade I is the 2nd of the month, and Sextidi of Decade III is the 26th. At the end of the year, after twelve months of thirty days each, came a 5-day period (six in leap years) of days which had no week or month, only a name. These are named appropriately in the calendar converter. Since there was no convention for listing years before the start of the calendar (in 1792), I adopt the same convention as for the Gregorian calendar, of decreeing the year before Year 1 to be Year 0, preceded by Year -1 and so on.

French Revolutionary

The original form of the above, computing new year using the true Autumnal Equinox (apparent time in Paris). The leap-year structure is no longer obvious; just whenever equinoxes happen to fall out 366 days apart. It will generally be very close to the Modified version, of course.


The Hebrew calendar is a fairly complex approximation that attempts to keep its months aligned with the moon but its years aligned with the sun. Since there is not a whole number of moon-cycles in a solar year, this gets interesting. It is currently still used by Jews all over the world to fix holidays and other dates of importance.

There is more than one way to number the months in the Hebrew calendar; in some circumstances Tishri is considered the first month, in others it is Nisan. The convention used here follows Reingold & Dershowitz in counting Nisan as the first month. Because of this, we have the slightly odd feature of the year number changing mid-year, since Tishri, the start of the secular year, is when the year-number advances, but it is the seventh month.

Because of its lunisolar nature, a leap year in the Hebrew calendar entails adding not a day, but an entire month to the calendar. This month, Adar II, is added before Nisan (choosing Nisan as the first month makes this easier.) Technically, it's the month before Adar II that is added (namely Adar I) and Adar II is really the ordinary month of Adar, but that affects observance more than math, so in order to keep the math simpler we consider Adar II to be the added month. It is legal, in the converter, to ask for a date in Adar II in a year which had no such date. Since that's just asking for the 13th month, the program has no problem: the 13th month of a year is defined as the month twelve months after the first. If that happens to be Adar II, fine. If not, it winds up being the next Nisan. Similarly, as mentioned above, you can ask for the 30th of a month that has only 29 days (for that matter, you can ask for the 97th of a month). The same sort of computation is used, giving you a reasonably sensible answer even if the question isn't sensible. In common years, the twelfth month is labeled Adar, while in leap years it is labeled Adar I and the next month Adar II, in accordance with usual practice. Although in the Jewish calendar it makes no sense to talk about negative years (since the year number is considered to be the number of years since the world was created. Hence, the year is given as "A.M.", or anno mundi, year of the world), I adopt the same practice as above in case you do: years go from -1 to 0 to 1 and so on.


The Islamic calendar is a purely lunar calendar, so its dates tend to slide around the year from the perspective of the Gregorian calendar. It has leap years, but these do not keep it aligned to the sun (no months are added, only days). It is still used by Muslims around the world to fix holidays and important dates, but it should be borne in mind that the calendar given here is only an approximation. There are many different Muslim authorities and different opinions on details of the calendar. Moreover, strictly speaking the calendar is fixed based on actual astronomical observations and official religious declarations (as the Hebrew calendar once was), and not the simple approximations used here. So the dates you see here may be off a day or so from any given "official" Islamic calendar.

As with other calendars that don't otherwise address it, years before Year 1 progress in the usual artificially mathematical way. The years are labeled "A.H." for anno hegiræ: year of (after) [Mohammed's] emigration (to Medina). All year labelings in this and other calendars follow the Dershowitz & Reingold book.


The Persian calendar is an extremely accurate solar calendar, adopted in 1925. It has six months of 31 days, five of 30, and one of 29 (or 30 in leap years). Its leap-year structure is dizzyingly complex, involving cycles and subcycles and subsubcycles of years, but the result is very close the astronomically-observed mean year.

The Persian calendar, for a change, actually does have existing conventions for dealing with years before Year 1. As with the Julian calendar, there is no year zero. Rather than invent clever notation, I simply have the year before Year 1 as Year -1. If you ask for a date in Year 0, you will get the answer exactly as if you had asked for the same date in Year 1 (i.e., the fictitious Year 0 is a synonym for Year 1. Compare this with the Julian calendar). Persian years are labeled with "A.P." for anno persico, "Persian Year."

Coptic and Ethiopic

These two calendars are almost identical, differing only in the starting epoch and the names of the months. They have the same leap-year cycle as the Julian calendar, and consist of twelve months of thirty days each, followed by a period of five days (six in leap years). So far as I know both are still in use by their respective groups, but I'm not well-versed on either culture. As usual, years follow the artificial mathematical progression.


This calendar is (so far as I know) used by Bahá'ís around the world. It is based on a 19-year cycle, with 19 months of 19 days each, plus some intercalenary days after the eighteenth month. Each year in a cycle has a name, as does each day in a month, and each month in a year (and weekdays). Also, each cycle has a name within the greater 361-year cycle (19 cycles of 19 years). The representation of the date needs a little work, I think. I probably should put weekdays for all calendars (or all that have them) and maybe make a month-day-year input interface for it (since even with the cycles it can be viewed as simply month-day-year). For negative years (before 1844), the negatives all go into the major cycle (the Kull-i-Shay), and the major cycle before Kull-i-Shay 1 was Kull-i-Shay 0 (preceded by Kull-i-Shay -1), as with my usual convention for years. The numbers in parentheses at the end of the date are the major cycle number, the cycle number, the month number, the day number, and the year number, which I put there so I could check the results against a known table without having to look everything up. It'll probably go away as I refine the presentation of the calendar.


These calendars are reconstructed from ones that were used by the Mayan culture. There is some disagreement as to the starting date of the Mayan calendars (which would affect all subsequent dates); the calendar currently uses (I think) Julian Day 584284.5 as day zero; most scholars accept either this or Julian Day 584282.5, I understand.

There are really three calendars represented here: the "long count" of days and cycles of days (20 days, 18 cycles of 20 days, 20 cycles of the previous sort, and 20 cycles of that kind, reading from right to left), the civil calendar of 18 months of 20 days each (numbered 0 to 19) plus a few intercalenary days, and the sacred calendar of thirteen numbers and twenty names, cycled simultaneously.

Old Hindu Solar

This calendar is not in use any more, replaced by a more complicated system of approximating astronomical phenomena (which I may someday implement, if my head ever stops spinning from reading about it). It uses rational approximations to the length of the year and the month, so there are no leap years per se, but the length of each month is not fixed, but depends on how the remainders of days and months and all happen to add up. There's a Jovian cycle that I can compute, but haven't yet worked into the interface of the converter yet. There's also an old lunisolar calendar which I'll probably implement soon.

Old Hindu Lunar

Another archaic calendar not used in this form. It's related to the Old Hindu Solar calendar, uses rational approximations in the same way, etc. Leap months are not fixed, but just happen when needed, like month lengths in the Solar calendar: if a lunar month begins and ends entirely within the same solar month (solar months are longer), it is a leap month, and the real one of the same name starts after it. There are also "lunar days", equal to 1/30 of a lunar month. Since that's shorter than a civil day, and a day is named for the lunar day in effect at its sunrise, you can have lunar days that are "excised" if they begin and end between one sunrise and the next. These are "lost" days; the calendar will raise an exception and catch the problem if you ask for one. It will also catch it if you ask for a leap month that isn't actually leap that year.

Both old Hindu calendars get their years labeled with "K.Y." for "Kali Yuga (expired)." The "expired" (used in all Hindu calendars here) means that it measures the number of years that have ended since the beginning of the age in question (here, the Kali age). So with these, it is correct to talk of Year 0 preceding Year 1; I'm not so sure about the sense of Year -1 (though I use it anyway).

Modern Hindu Lunar and Solar

More up-to-date versions of the above; they use more advanced approximations for the astronomical calculations, which are traditional Hindu astronomy, using epicycles and the like. Like the "old" versions, these properly should be done using rational numbers rather than floating point. However, the calculations involved can result in numbers with numerators and denominators more than 400 digits long. I actually made a special class to let me do just that, and implemented the calendars using it. Eventually it even worked, but wow, was it S-L-O-W! I'm talking order of a minute or longer to recompute some of these things. I couldn't put that here on the page. So I re-implemented them using double-precision, and the results should be just fine (certainly the error should be less than a day, and this is a calendar, not a clock). Like the Old Lunar calendar, the Modern one can also have leap months and excised days, but it also can have leap days as well. So you can have two consecutive days with the same date. Therefore it needs a different kind of input interface. Similarly, whole months can actually be excised in the Modern calendar (which couldn't happen with the Old one). Not sure if those are checked for properly yet; I think they are.

For the Modern Hindu Solar Calendar, I label the years "S.E." for "Saka Era (expired)," which differs from the Kali Yuga used to label the Old Hindu calendars by 3179 years. For the Modern Hindu Lunar Calendar, I label the years "V.E." for "Vikrama Era (expired)." This is 3044 years off from the Kali Yuga used to label the Old Hindu calendars.


A very complex calendar, based on scientific calculations for astronomical events. There is a 60-year cycle of names (including five iterations of twelve animal totems for the years), and within each cycle there are of course sixty years; each year has twelve or thirteen months, and each month twenty-nine or thirty days. All the variation is entirely up to the stars: when no major solar "term" occurs in a given lunar month, a leap month is inserted. New months happen on new moons (Beijing standard time after 1929, Beijing local mean time before 1929).

Mark E. Shoulson
Updated April 6, 1999