# A leap year is a year that has an extra day in February.

Leap years have 366 days, one more than the 365 days in a common year. The extra day is inserted at the end of February, creating a leap day on February 29.

## How often do leap years occur?

Leap years occur roughly every four years. However, most people don’t know that there are some exceptions to that rule. For example, did you know the years 1900 and 2100 are technically NOT leap years 🤯?

You can learn more below about the math behind leap years, but here’s a quick calculator to determine if a year is a leap year:

## Why do we need leap years?

The calendar system most of the world uses today is based on the Gregorian calendar, which was put into place by Pope Gregory XIII in 1582. The calendar was designed to fix errors from the Julian Calendar, which was used previously by ancient Romans.

The Gregorian calendar rounds the number of days in a year to 365. However, it actually takes the earth 365.2425 days to revolve around the sun. That extra 1/4 day each year adds up to roughly a full day every four years. To account for that, leap years were created. Every four years, an extra day is added to the end of February.

However, since we’re in the nitty gritty, there’s a bit more to the equation (those 16th century mathematicians didn’t cut corners!). The Gregorian calendar adds an additional requirement for a year to be a leap year:

If a year is divisible by 100, it also must be divisible by 400

Because of that gotcha rule, the following turn-of-the-century years are not leap years: 1800, 1900, 2100, 2200, 2300, 2500, 2600, etc.

## How to calculate a leap year

The following logic determines whether a year is a leap year or common year:

`IF the year is both divisible by 4 AND not divisible by 100`

`OR`

`If the year is divisible by 400`

`THEN the year is a leap year`

`Otherwise, it's a common year`

You can easily translate that logic into a Coda (feel free to copy and paste it): `IF(`

`OR(`

` Remainder(thisRow.Year,400)=0,`

` AND(Remainder(thisRow.Year,4)=0,Remainder(thisRow.Year,100)!=0)`

`),"Leap Year", "NOT a Leap Year")`

## You might also want to know