Today is February 29th, that odd date that only occurs every four years.

The reason for a leap day inserted into the calendar, the existence of February 29th, is ultimately astronomical. Perhaps a little explanation is in order…

We originally defined days as the time it takes the Earth to rotate. While we define years as the time it takes the Earth to orbit once around the Sun. The problem is that these values do not divide evenly into one another.

The Earth takes about 365.24219 days to obit the Sun, when measured by the Sun’s position in the sky, what is called a tropical year. There are different ways to measure a year, but if one is concerned with keeping the seasons in sync with your calendar, then you are interested in tropical years.

It is that bunch of decimals, the 0.24219 etc., that is the problem, every four years the count drifts out of sync by roughly one day. The insertion of an extra day every four years helps bring the calendar back into synchronization with the orbit of the Earth and with the seasons.

Even leap years do not quite fix the problem as 0.24219 is close, but not quite 0.25 or one quarter of a day. Thus additional corrections are needed… Enter leap centuries.

Our current calendar was instituted by Pope Gregory XIII in 1582, setting up a standard set of corrections for the fractional difference between the length of a year and the length of a day. Scholars knew that errors had been accumulating in the calendar for centuries, resulting in a drift of several days.

Religious authorities were concerned that this drift had displaced important celebrations in the church calendar, in particular the celebration of Easter. After much argument it was decided to reform the calendar. The current solution was devised by a number of astronomers, including Aloysius Lilius, the primary author of the new system.

The Gregorian Calendar uses an extra day in February every four years, unless the year is divisible by 100, then there is no leap leap day that year. However, if the year is divisible by 400, then it is a leap year. While this may sound odd, it does create a correction much closer to the ideal value of 365.24219 days per year.

I am a geek, so let us put that into code…

12345678910 if (year modulo 4 = 0) thenif (year modulo 100 = 0) thenif (year modulo 400 = 0) thenleap= Trueelseleap= Falseelseleap= Trueelseleap= False

Even this is not perfectly precise. The correction is close but will drift given enough time. The length of a tropical year also changes slowly over time. We will eventually have to add another correction to keep the calendar and the seasons in sync. But not for a few millennia, good enough, for now.

As 2020 is divisible by four and not divisible by 100, there will be a leap day added to the end of this February… Today.