© J R Stockton, ≥ 2012-12-28

Leap Years.

Links within this site :-

The Prayer Book, 1604 : "On every fourth year, the Sunday Letter leapeth" (BCP).

The Need for Leap Years

The axial rotation of the Earth with respect to the Earth-Sun line governs the Day/Night cycle and so defines the average length of a Solar Day. The axis of this rotation points in a constant direction with respect to the Fixed Stars (with a slow variation with a period of about 26,000 years).

By ancient Judaeo-Christian convention, the Year is given by one cycle of the seasons. Each orbit of the Earth round the Sun takes about 365.2422 days. Because of the tilt of the Earth's axis with respect to the fixed plane of the orbit, that essentially governs the seasonal cycle (the effect of the non-circularity of the orbit is considerably smaller).

Because the number of days in a year is not an integer, Leap Years are used in the Hebrew and Christian Calendars to give the required average length of a year by adjusting its composition in terms of intermediate units.

In the Islamic Calendar, the Year contains twelve Lunar months. Each apparent orbit of the Moon round the Earth, from New Moon to New Moon (i.e. with respect to the Earth-Sun line), takes about 29.5306 days, so twelve months take about 354.3672 days. The Islamic Calendar Year is about 11 days shorter than the Gregorian and Seasonal Years.

In the Hebrew Calendar, the Year contains twelve or thirteen Lunar months, and two months have variable lengths. The Hebrew Calendar Year is very slightly longer than the Gregorian and Seasonal Years.

Further information and links can be found in Date Miscellany I, The Hebrew Calendar, The Date of Easter Sunday and Date and Time Index and Links.

Leap Seconds

Leap Seconds are quite different; they deal with the much smaller discrepancy between 86400 SI seconds and the mean Solar Day.

The Gregorian Leap Year

Before A.D. 1753 (in the British Empire; elsewhere, 1583 or later), on the Julian Calendar (Date Miscellany I and below) every year divisible by 4 was a leap year.

In the succeeding Gregorian Calendar, presently used world-wide and defined in ISO 8601, years divisible by 4 are leap, except when divisible by 100 but not by 400; so that, expressively but inefficiently, :-

 Leap := (Year mod 4 = 0) xor (Year mod 100 = 0) xor (Year mod 400 = 0) ;

(See LEAPYEAR.PAS, which contains, tests and times many implementations of the rule : Turbo Pascal / Delphi ; and also Day, Month and Year Lengths : JavaScript)

On a machine with decimal arithmetic, multiply the year by 25 :-

Leap = (Result ends 00) and ((Year does not end 00) or (Result ends 0000))

A base-20 year number string can be tested by the Regular Expression /([^5AF]0|[48CG])$/i .

Note that if using Proleptic Gregorian Years before A.D. 1, it is necessary to use Astronomical notation (with Year 0), and to verify that mod of a negative number works as is needed.

Note also that Financial Years, when starting after the end of February, need a modified rule.

Within the probable lifetimes of the overwhelming majority of us (written in 1998), every fourth year is Leap. Therefore, within the calendar range 1901-2099 inclusive, either of the following will suffice, the latter being faster :-

 Leap := (Year mod 4) = 0 ;
 Leap := (Year and 3) = 0 ;

Requirements for Efficiency

Generally, to be efficient, a full algorithm will test first for divisibility by 4; if divisible, then by 100; if divisible, then by 400. This minimises the average number of divisions required.

 if Y mod   4 is not 0 then return false ;
 if Y mod 100 is not 0 then return  true ;
 return Y mod 400 = 0 ;

Calendar Repetition

The effects of the Gregorian Rules repeat every 400 years, which happens to be a multiple of seven days. Therefore, the pattern of Weeks has the same perpetual repeat. In the Julian Calendar, and so also in the Gregorian Calendar except across missing Leap Days, the repeat is 28 years.

A.D. 2000 was a Leap Year

The calendar year A.D. 2000 was a normal leap year; its February 29th was a Tuesday (as always for a Gregorian "century" leap year), and was immediately followed by Wednesday March 1st.

Beforehand, various ill-informed sources had made various incorrect assertions.

The Calendar Acts

For the ultimate authority in the British Empire and Colonies, including America, see the Calendar Acts themselves : "Calendar (New Style) Act (1750 c.23)" ('Chesterfield's Act'), amended (though in a manner not affecting Leap Years or Easter) by "Calendar Act (1751 c.30)". See also in my The Date of Easter Sunday.

The Act of Parliament is 24 Geo. 2. c.23 [amended by 25 Geo. 2. c.30.], "An Act for Regulating the Commencement of the Year; and for Correcting the Calendar now in Use" (Acts are dated by Regnal Years).

A representation of current legislation (as amended subsequently) can be found by searching for "Calendar Act" in the UK Legislation site.

Copies representing the combined Acts (and dated 1751) can be found by searching the Web for "Scotlond" (only in the Plea for Enaction, not in the Act proper) plus "Supputation". But "Scotlond" is a transcription error; the Act has "Scotland". For links to the Act, including as images, see in Date and Time Index and Links.

The Act itself appears not to apply to Australia and New Zealand.

The Act was enacted by the British Parliament, and applied to Britain and the British Colonies. The Act, and the Colonies, should not be described as "English". Web sites are often in error there.

The combination "A.D. 1751. Anno vicesimo quarto GEORGII II. CAP.XXIII., An Act for regulating the commencement of the Year, and for correcting the Calendar now in use" includes :-

II. And for the continuing and preserving the Calendar or Method of Reckoning, and computing the Days of the Year in the same regular Course, as near as may be, in all Times coming;

Be it further enacted by the Authority aforesaid,

That the several Years of our Lord, 1800, 1900, 2100, 2200, 2300, or any other hundredth Years of our Lord, which shall happen in Time to come, except only every fourth hundredth Year of our Lord, whereof the Year of our Lord 2000 shall be the first, shall not be esteemed or taken to be Bissextile or Leap Years, but shall be taken to be common Years, consisting of 365 Days, and no more;

and that the Years of our Lord 2000, 2400, 2800, and every other fourth hundred Year of our Lord, from the said Year of our Lord 2000 inclusive, and also all other Years of our Lord, which by the present Supputation are esteemed to be Bissextile or Leap Years, shall for the future, and in all Times to come, be esteemed and taken to be Bissextile or Leap Years, consisting of 366 Days, in the same Sort and Manner as is now used with respect to every fourth Year of our Lord.

The current authoritative version, in the Statute Law Database, is virtually identical.

The Papal Bull

For the Roman Catholic Church, the authority is the Papal Bull (or Encyclical) Inter Gravissimas of 24th February 1581 (Julian, O.S.) – 6th March 1582 proleptic Gregorian.

The full text of the Papal Bull as shown in Clavius' Explicatio contains :-

  Deinde ne in poſterum à xij. Cal. April. æquinoctium recedat, ſtatuimus Biſſextum quarto quoq. anno (vti mos eſt) continuari debere : præterquam in centeſimis annis ; qui quamuis biſſextiles antea ſemper fuerint, qualem etiam eſſe volumus annum 1600. poſt eum tamen, qui deinceps conſequentur, centeſimi non omnes biſſextiles ſint, ſed in quadringentis quibuſque annis primi quique tres centeſimi ſine Biſsexto tranſigantur, quartus vero quiſque centeſimus biſſextilis ſit, ita vt Annus 1700. 1800. 1900. biſſextiles non ſint. Anno vero 2000. more conſueto dies biſſextus intercaletur, Februario dies 29. continente ; idemque ordo intermittendi, intercalandique Biſſextum diem in quadringentis quibuſque annis perpetuo conſeruetur.


... ſi quis autem hoc attentare præſumpſerit, indignationem omnipotentis Dei, ac Beatorum Petri, & Pauli Apoſtolorum eius ſe nouerit incurſurum.

  Datum Tuſculi Anno Incarnationis Dominicæ M.D.LXXXI. Sexto Calend. Martij. Pontificatus noſtri Anno Decimo.

Translation links are in my Date and Time Index and Links.

The following (MAK 20060810) better represents the ending of the Bull :- "But if anyone presumes to attack this, let him know that he will run into the indignation of almighty God and of His blessed apostles Peter and Paul."


  1. In England, before 1752, the Civil/Historical difference means that the civil year number on a Leap Day when divided by 4 left a remainder of 3 (I think).
  2. I seek Caesar's original (c. 45 B.C.) text decreeing quadrennial leap years.
  3. I seek also a .VA site for the Papal Bull.
  4. I seek also sites for the annexes to the Bull and the Act that deal with The Date of Easter Sunday.
  5. The length of February is the date of March 0th; JavaScript, Java (and perhaps other languages) can use that.
  6. If Gregory XIII had changed the month-lengths to 30 31 30 31 30 31 30 31 30 31 30 30/31 then date calculation would have been simplified.

Gregorian Date Validation

Given integers Y M & D, a generally efficient method is :-

 if M < 1 then return false
 if D < 1 then return false		or	if M+D < 2
 if M > 12 then return false
 if D ≤ [31,28,31, ... 30,31][M] return true
 if D > 29 return false
 return Leap(Y)			as above

If D=29 seems too big then the month can only be February, and only then does one need to check for a Leap Year.

In some computer languages, available date primitives support other methods for leapness and validation, briefer but perhaps slower. For example, if there is a routine converting any Y M D into a date representation, and a reverse routine, then one can use both and check that D M and maybe Y are returned unchanged. If M & D are known to consist of no more than two decimal digits, it is only necessary to test the returned M. Beware of systems that take 09 & 09 as octal.

The Extra Day

As Osmo Ronkanen <ronkanen@cc.helsinki.fi> has pointed out :-

Contrary to common belief the leap day is 24th and not 29th February. That means those born 24th-28th February on non-leap years have birthdays one day later on leap years (25th-29th respectively) and vice versa. Those born on 24th February on leap year have birthdays only once in four years.

This, of course, may throw the retrospective position of Frederic of Penzance into doubt once again :-)   (G&S: 'TPoP').

Whitaker's Almanac, however, implies that the extra day follows the usual February 24th.

The term "Bissextile" refers to the duplication of "February 24th", the Roman date "a.d.VI Kal.Mar." - Twice the Sixth. It appears that bis ante diem VI kal Mar. was inserted before ante diem VI kal Mar..

I have read that this injection of an extra day displaces, or used to displace, Saints Feb25-Feb28 to become Saints Feb26-Feb29, in the Catholic Church. Among others, Not a Bug, in "A History of the Western Calendar" (K T Hagen) has details. St Matthias moves (for Roman Catholics) from Feb 24 to Feb 25.

Wikipedia Dominical Letter refers.

Later Definitions?

I have read that the EU have decreed that, from 2000, the extra day is the 29th.

Otherwise, the Bull and the Acts have been apparently considered largely sufficient, even for the USA. (Some standards, e.g. ECMA-262 "ECMAScript Language Specification" include or imply the Calendar, but do not purport to define it themselves.) RSVP.

ISO 8601 describes or defines the Gregorian Calendar scale; but does a mere International Standard have precedence over a Pope and a Monarch?

UK Financial Year

Note that UK Financial Year 2000-1 was NOT a leap year; it had only 365 days, being 2000-04-06 to 2001-04-05; see in Date Miscellany II.

Leap Year Repeats

For more detail, see Repeats and The Date of Easter Sunday.

Within 1901..2099, there are regular Leap Years. There are only 14 possible types of year, leap/not starting Sun/.../Sat. All types occur. Therefore years must repeat, on the average, every 14 years.

But leap years are rare; it takes 28 years for a full set of 7 leap years. During this, each of the ordinary year-types occurs thrice (at uneven intervals), so sustaining the average. Thus the Calendar repeats every 28 years in 1901-2099.

The full leap year rules have a period of 400 years. By good fortune, that includes an exact number of weeks. The Calendar therefore has a permanent 400-year repeat; but all types of month are not equally likely. (The present 4/100/400 scheme is not the only one possible; but the better 4/128 rule would repeat weeks only after 896 years.)

In any 400 years, there are 97 Leap Years, in which the number of Leap Days being Sunday..Saturday is 57, 58, 56, 58, 56, 58, 57 respectively. A Leap Day is two weekdays earlier than that four years before, or two weekdays later than the previous one eight years before.

The Easter Sunday range is 35 days; so there are only 70 annual calendars (the Gregorian Easter pattern repeats every 5,700,000 years).

Specific Years

A.D. 1600 and 1700

Considering now only Historical years divisible by 100 - on the Julian Calendar all are Leap; on the Gregorian only those divisible by 400 are Leap. Rome changed to the Gregorian Calendar in 1582, Britain and Colonies in 1752 (other places changed at various dates from 1582 to perhaps 1924).

Therefore, Rome & England effectively used the same Julian rules before 1600; different rules but with the same result in 1600; different rules with different results in 1700; and the same Gregorian rules thereafter. Only 1700 differed in Leapness between Rome & England; the historical Year 1700 was a Leap Year in Britain and possessions.

The (Julian) date Thursday 29th February 1700 occurred here in England, but it was civil date Thursday 29th February 1699 (the new year number then starting with March 25th); also, it was MJD  -57959, CMJD  -57959, and Gregorian (Rome) 1700-03-11.

Don't even ask about 1700 in Scandinavia; read the Calendar FAQ, carefully.

Note that many otherwise reputable authorities have omitted to consider the point; but the differing Leapness of Historical 1700 is what reconciles the 10- and 11- day jumps of 1582 and 1752.

Exactly When in 1700 did the Date Difference Change?

Between 1582 and 1700, the Gregorian Calendar was "10 days ahead" of the Julian Calendar; between 1700 and 1800, it was "11 days ahead". By JavaScript Date and Time 8 : Enhancing the Object :-

						Differences, days
	  CMJD	    Julian	 Gregorian	Julian	Gregorian
	-57971	  1700/02/17	1700-02-27	  10	   10
	-57970    1700/02/18	1700-02-28	  10	   10
	-57969	  1700/02/19	1700-03-01	  11	   10
	-57968	  1700/02/20	1700-03-02	  11	   10
	-57960	  1700/02/28	1700-03-10	  11	   10
	-57959	  1700/02/29	1700-03-11	  11	   10
	-57958	  1700/03/01	1700-03-12	  11	   11
	-57957	  1700/03/02	1700-03-13	  11	   11

The Julians, believing in that February 29th, will consider the difference to be 11 days starting with -57969 1700/02/19, when the Gregorians jumped a date. The Gregorians, not believing in that February 29th, will consider the difference to be 10 days ending with -57959 1700-03-11, when the Julians inserted a date.

A.D. 1752

In Britain, the Historical Year 1752 was of course Leap, by the Julian rule; but, for the last time, the extra day (February 24th) and the extra date (February 29th) were counted in the previously-numbered Civil year.

A.D. 1800

1800 was a Leap Year in Alaska (then Russian), and in those places where 1900 was Leap.

A.D. 1900

1900 was not a Leap Year, of course, except in those few countries (Albania, Bulgaria, Estonia, Greece, Latvia, Lithuania, Romania, Russia, the Balkans, ...?) still on the Julian Calendar. They had 29th February 1900 on Gregorian 1900-03-13, agreeing that it was a Thursday.

However, certain primitive programmers of spreadsheets and/or suchlike implemented the year as Leap, and some systems show relics of this situation. Some may actually show 1900-02-29 as a normal date. Others, already committed by compatibility to a particular correspondence between present-day dates and day numbers, yet correctly omitting 1900-02-29, have therefore needed to place the zero of the count a day earlier than it should have been. Day Zero of the 1900's can be 1899-12-30, 1899-12-31 (two ways), or possibly 1900-01-01. Beware.

Excel 97 SR-1 includes Day 60 = 1900-02-29; Day 1 is 1900-01-01 and Day 0 is 1900-01-00. So does much other software.

I believe that the NTP scale, starting at Day 0 = 1900-01-01, correctly does not include 1900-02-29 - see Year 2000 Page, Part 2, Year 2000 Programming.

A.D. 2100 ...

2100, 2200, & 2300 will, of course, not be Leap Years. 2100 will be the next failure of the simple "Leap year every fourth year" rule. Excel 97 SR-1 recognises that.

A.D. 2400

2400-02-29 will occur on a Tuesday, like all Leap Days in the closing year of a century.

February 30th

There was no 2000-02-30.

In the Roman Calendar, from BC 45 to BC 8, Februarius in Leap Years may have had 30 days; the last being Prid. Kal. Martii.

I have read (Wikipedia) that, in 1930 and 1931, the Soviet Union used a calendar in which every month had 30 days; the Leap Day followed February 30th.

Otherwise, the only A.D. February 30th was that of Sweden (and so of Finland), in 1712 (Calendar FAQ; 30 dagar i februari (bilingual); Change of calendars - Sweden); and no further February 30th is scheduled. Indeed, the next level of correction would need to omit a day, eventually; not to add one.

See also Isaac Newton below.

Any Calendar with revised rules would not be a Gregorian one.

Anyone intending to authorise a new Calendar should be careful not to be called Gregory.

Rules Not In Force

As the Tropical Year is currently about 365.242190 days, and the Gregorian Year averages 365.2425 days exactly, the next level of correction would be to OMIT a [leap] day about once per 3225 years.

No Further Rule

Nevertheless, there is no 1000, 2000, 3000, 3200 or 4000 year rule in force, although such have been suggested. I have read that "A 'divisible by 4000' rule was proposed by John Herschel (1792-1871), but not adopted.".

I am uncertain as to whether old editions of the Encyclopaedia Britannica are ambiguous, misleading, or wrong; and as to how much they differ. It seems that some of them half-believed in a 2000- or 4000- year rule (which would be arithmetically reasonable, but which has not, so far, been authoritatively decreed). The 1937 edition described the 4000-year rule as "proposed". I cannot find either rule in a modern Britannica.

However, see Markus Kuhn on Leap Seconds.

No Millennial Rule

A millennial rule could not be useful; it would of necessity be an over-correction.

A 128-year Rule?

Personally, if I were Pope, I'd change (with effect from the year 2048) to having a Leap Year every time that the Year was divisible by 4 but not by 128 - this gives an average year of 365.2421875 days - as proposed by M.B. Cotsworth (1859-1943); see also Date Miscellany II. Some such Leap Year strategies can be determined by putting the fractional part of the length in days of a Tropical Year into the Input box of Approximate in Maths Demonstrations.

Isaac Newton

See History of One Defeat: Reform of the Julian Calendar as Envisioned by Isaac Newton, on unpublished MS material from about 1699. Newton proposed new (non-Gregorian) Leap Year rules, and wrote :

And that the year may be of a just length and the month remain constant to the seasons of the summer and winter, it may be further enacted that the 29th day of February shall be omitted in the last year of every century escaping the last year of every fifth century and that in the last year of every fiftieth century a day shall be added to the end of February, that is to say, the month of February in the years 1800, 1900, 2100 etc shall have 28 days and in the years 2000, 2500, 3000 etc each shall have 29 days and in the years 5000 and 10,000 etc (if the calendar should extend so far) each shall have 30 days.

Calendar Hardware

The PC RTC has only the 4-year rule, and so got it right in 2000, which is the only "00" year that matters for a DOS PC.

I've seen it said that Motorola CPU RTCs use 4+100 year rules, so omit 2000-02-29; but after that they're OK until the Year 2400.

Events of Leap Days

Events of 29th February

Comparatively little of importance appears to have happened on any February 29th - are any more interesting events known? See also ScopeSys, which covers all days and has more entries.

Some past Web lists, by showing events for February 29th in non-Leap years, have shown their own unreliability.

Adrian Berry, writing in the Daily Telegraph of Monday 2006-02-06, apparently expected a New Moon for the 29th of the month.

The Greek Orthodox Church commemorates Saint John Cassian.

Born : Pope Paul III (1468); Gioacchino Rossini (1792); John P Holland (1840); Frederic (1852/6); Herman Hollerith (1860); DRVB (don't ask); James Ogilvy (1964); ...

Died : Pope Hilarius (468); Oswald, Archbishop of York (992)*; Patrick Hamilton, Scottish martyr (1528); John Whitgift, Archbishop of Canterbury (1604); E F Benson, British author (1940); ...

Events : Columbus' Lunar Eclipse (1504; predicted in Regiomontanus's Ephemerides); Disraeli's first Government formed (1868); Helium first solidified (1908, Dutch); Agadir Earthquake (1960).

In the UK, no-one (non-immigrant) became 100 years old on 2000-02-29 - a small respite for Her Majesty.

In Sweden, 1712-02-29 was not the end of the month.

* : Archbishop Oswald of York (Saint) died on 0992-02-29 (catholic-forum). King Oswald of Northumbria (Martyr & Saint) died in 642 (britannia says in battle with the Welsh at Oswestry on August 5th) [feast day is Aug 5th]. And Oswald Thomas Colman Gomis is Catholic Archbishop of Colombo (at 2004-01-01).

Event of 29th February, BC 1901

Solar Eclipse, 13:57 UT, in North Atlantic area.

However, it looks as though new data may have moved the estimated date of this event, presumably Number 00238, to March 1st.

Events of 29th February, AD 1700

I know of few events of Historical 1700-02-29, in UK, pre-USA, or elsewhere - RSVP :-

In England, the day was actually 29th Feb 1699 O.S.

Events of 29th February, AD 1800/1900

These would have to be in or near the Balkans or Russia, or (1800) Egypt, where the Julian Calendar was still in use. I know of none.

But 1900 02 29 was a sort of Anti-Event in the date numbering of spreadsheets, inherited for compatibility by such as Delphi.

Events of 24th February

Also, I know of few really interesting events on February 24th of leap years.

Born : JRK (don't ask) ; ...

Non-Gregorian Calendars

There is a Calendar Converter, operating between the : Gregorian Calendar; Greg. serial day; Julian Calendar; Julian day number; Modified Julian day; Mayan Long Count; Persian Calendar; Indian Civil Calendar; Hebrew Calendar; Islamic Calendar; Bahá'í Calendar; French Republican Calendar; ISO 8601 Week and Day, and Day of Year; Unix time() value; Excel Serial Day Number - 1900 Date System (PC) & 1904 Date System (Macintosh). However, I doubt its time-of-day handling (as at 2003-03-04).

Kees Couprie, via Calendar Math, has date converters in Visual Basic, converting between the Julian Day Number, the Civil (Gregorian) calendar, the Julian calendar, the Hebrew calendar, the Islamic (Hijri) calendar, and the Persian (Shamsi) calendar.

For other calendars, see via Liste des calendriers.

For Date Lines, see Date Lines.

Leap Similar to Gregorian

The differences in rules generally affect only years divisible by 100.


The Ancient Egyptians had a calendar with years of 365 days (12 months of 3×10 days, plus 5 days). In 238 B.C., priests meeting at Canopus established every fourth year as having an extra day (and published the Decree of Canopus, found on a bilingual stela). I do not know whether the Julian Calendar uses the same leap years. I have a book which dates the decree at 239 and delays implementation for a couple of centuries.


In the Julian Calendar, every year for which the "A.D." number is divisible by four, and no other year, is a leap year.

Every A.D. year divisible by 4 but not by 100 is a Leap Year on both of the Julian and Gregorian calendars, but not vice versa (since on the Julian, the "100" criterion is not needed).

From Roman times until the second half of the Second Millennium, the Julian Calendar was used, more or less accurately, through the bulk* of Christendom; it was then superseded over a period by the Gregorian Calendar.

After initial error, the Romans implemented correct counting from 8 A.D. The year 4 A.D. was not Leap; there was no year 0 A.D., and the year before 1 A.D. was not Leap.

From February of 8 A.D., every 48th month has been a Leap Month except as affected by the Gregorian Reform - this avoids consideration of year numbering, the start of the year, and the identity of the extra day!

All Historical Years with numbers divisible by 4 in the range from A.D. 5 to A.D. 1699 inclusive were everywhere Leap. Caesar's intention would have had the effect that the year following every a.u.c. year which was a multiple of IV would be Leap.

See the Calendar FAQ for details, especially of 46 B.C. to 8 A.D. In B.C. times, 45?, 42, 39, 36, 33, 30, 27, 24, 21, 18, 15, 12, 9, and no others, were Leap; and A.D. 4 was not Leap either.

N.B. : Peter Meyer gives a different interpretation, with correct counting from A.D. 4.

* : The Ethiopian and Coptic Calendars, derived from the Alexandrian, differ.


This is from a time_t manual page (the Epoch is given as 00:00:00 UTC, January 1, 1970) :-

TIME(2) 	  Linux Programmer's Manual	      TIME(2)


       POSIX.1 defines seconds since the Epoch as a value  to
       be  interpreted	as  the  number  of seconds between a
       specified time and the Epoch, according to  a  formula
       for  conversion	from  UTC equivalent to conversion on
       the naiive basis that leap seconds are ignored and all
       years  divisible  by  4 are leap years. ...

Using the Julian Calendar in a standard written about four centuries since the Papal Bull and over two centuries since the Calendar Acts seems ridiculous. However, time_t was then a 32-bit signed integer of seconds from Epoch, and could not reach either 1900 or 2100. When time_t is 64-bit, the Gregorian rules will be needed.

Nevertheless, there must be a risk of implementers upgrading from 32 to 64 bits and forgetting the need for the Calendar upgrade.

French, Soviet

Gregorian rules apply. Additionally, for the French Revolutionary calendar it was proposed, but seemingly not settled, that "4000" years would be non-leap.

The USSR is sometimes said to have decided on that, too.

Greek Orthodox

In the Greek Greek Orthodox calendar (Revised Julian?), 2800 is not leap, but 2900 is; non-Greek GO use Julian.

The Greek Orthodox Church is (and, according to E.G.Richards, the USSR was) said to plan to have an "00" leap year not when the Year is divisible by 400, as we do, but when on dividing by 900 the remainder is 200 or 600. Thus they have, per 36 "00" years, 8 leap years instead of our 9; a correction rather close to what is needed, giving 365.242222.. days. We must await, with eager anticipation, the year 2800, to see whether they reach its March before we do.

But I have read that :- The proposal by Milutin Milankovich was formally adopted by the Pan Orthodox Congress in 1923 but I do not know of any specific church that really adopted it..

See Revised Julian Calendar.


See my The Hebrew Calendar. Seven years of every nineteen are Leap, but the Leapness is of a different nature; a month is added. Two month lengths vary, independently. Months track the predicted true Moon.


Islamic (Hijri) Lunar calendars have 12 months of 29 or 30 days, generally alternating, in a year; the details vary. One must be careful to use the right version.

Traditionally, the Islamic day starts at sunset, the month starts with the day after the new moon is first sighted, and there are twelve of these months in a year; A.H. 0001-01-01 is A.D. 0622-07-16 Julian (or the day before).

Whitaker's Almanac for 2002/3 says that the month cannot exceed 30 days; if the Moon is visible on the 29th, the next day is the first day of the next month, and otherwise it is the last day of the current month.

The Calendar FAQ says that the Islamic Calendar relies on an observed full moon; except that Saudi Arabia and neighbours now use one based on an accurate calculation of whether Sun or Moon sets first on the 29th of a month. But the Saudi system seems to keep changing :- JAS (gives rules -1419, 1420-22, 1423-), R H van Gent. Saudi months, being based on the Moon being New rather than visible, start earlier.

But it appears that there is, or was, also a simple standard regular predictable astronomical calendar. According to Whitaker's Almanac 1989, to E.G.Richards, and to Weisstein :- The calendar is Lunar; the twelve months are alternately of 30 and 29 days, with a 30th day in the 12th month in the eleven years of every thirty which are Leap. Years are 354 or 355 days. Months track the nominal Moon. I have Pascal routines to convert this to/from CMJD in hijrical.pas (c. 12 kB); but there is an uncertainty of about a day as to what the dates actually used really are.

I have an Islamic Diary for A.D. 2002, and Calendars for A.D. 2003 and 2004, and these clearly use other rules for precalculation; discrepancies of one day are seen between these and Whitaker. I do not know whether years of lengths other than 354/355 days can result.

Thus a date given as A.H. YYYY-MM-DD specifies an actual day with an uncertainty of a day or perhaps two; the Day-of-Week can also be given, which resolves the ambiguity.

Links :-


A Persian/Iranian Solar calendar is referred to as Shamsi, or Hijri Shamsi; used with Farsi; introduced A.D. 1925-03-31 in the Pahlavi era; it starts six months before September 0622 A.D. Currently, the year A.D. X starts in H.S. (X-622); the year H.S. Y starts in A.D. (Y+621); the H.S. year starts on/about March 20.

The Calendar usually has, after 6 or 7 normal Leap Years, a five-year gap instead of a four-year gap; thus it has 31 leap years in 128 years (which is good). But it repeats only every 21×128+132=2820 years, since in the last interval the gap is delayed to 8 Leap Years. Month lengths also differ from Gregorian; 6×31 then 5×30 then 29 or 30 days.

The current official calendar in Iran and Afghanistan begins the year on the midnight nearest the true spring equinox by Iran Standard Time (GMT+3.5h).


See Maldive calendar.


For Leap Years, see LEAPYEAR.PAS, which checks and compares a score of methods in Pascal; and see in JavaScript Date and Time 3 : Input and Lengths for JavaScript; and also see The Gregorian Leap Year above.

See also in Date and Time Calculation, and links in Date and Time Index and Links.


Frederic of Penzance was born on 1852-02-29. Originally it had been intended that he would enter the harbour service, but due to an error this did not happen, and he entered a less reputable sea-trade. In 1873 the error was admitted, but paradoxically it appeared necessary for him to continue thus for an extended period. After legal action, initially unsuccessful, a generally satisfactory solution was attained. The matter has been recorded by W S Gilbert and A S Sullivan, and first fully "published" on 1880-04-03 in, I believe, Paris (Previews: Paignton; New York 1879-12-31). There are no longer Pirates of Penzance, except operatically (G&S archive page).

Isaac Asimov, however, in "Banquets of the Black Widowers - The Year of the Action" shows that the reference to Pinafore implies that the error was admitted in 1877, so the birth date was 1856, with Gilbert therefore considering 1900 as Leap. (Frederic's 21st birthday is stated as in 1940.)

Home Page
Mail: no HTML
© Dr J R Stockton, near London, UK.
All Rights Reserved.
These pages are tested mainly with Firefox and W3's Tidy.
This site, , is maintained by me.