Leap Year Checker

Check the Gregorian leap-year rule for any whole year and see the next February day count.

Gregorian rule: divisible by 4, except centuries, except centuries divisible by 400.

Result2028 is a leap year.
Days in February29
View 2028 year progress

Enter a whole year and the calculator returns a one-line verdict using the Gregorian rule: divisible by 4, except divisible by 100, except divisible by 400. The result tells you whether February has 28 or 29 days that year, which is the only practical consequence of the leap-year flag. Inputs run as integers with no time-of-day or time-zone component, so the answer is identical anywhere in the world. The same divisibility logic underlies the leap-day handling in the age calculator and the same-calendar-year matching in the date patterns tool.

Common use cases

  • Confirming February has 29 days this year. Planning a payroll run, a billing cycle, or a school calendar that crosses February? Enter the year, read the days-in-February field directly. 2024, 2028, and 2032 all show 29; 2025, 2026, 2027 show 28. The Gregorian skip years (1700, 1800, 1900, 2100, 2200, 2300) show 28 even though they are divisible by 4.
  • Settling a "is 2000 a leap year?" debate. The 100-except-400 exception confuses people. 1900 is not a leap year (divisible by 100, not by 400), but 2000 is (divisible by 400). Enter either year to read the verdict and see February at 28 or 29 days respectively. The next "skip" year is 2100, which most people alive today will not encounter.
  • Checking a birth-year leap status. Someone born on February 29 only has a real birthday on leap years. Enter the birth year to confirm February 29 actually existed in that year (it must, for the birth date to be valid). Then enter any candidate target year to see which year the next on-the-day birthday falls in.
  • Picking a 366-day year for a project. A photo-a-day project, a savings challenge, or a year-long fitness streak runs one day longer in a leap year. Enter the candidate start year to confirm whether you owe 365 or 366 daily entries. To count working days inside that year, use the business days between calculator.

How it works

The calculator passes the input year to the Gregorian rule: a year is a leap year if it is divisible by 4, except that years divisible by 100 are not leap years, except that years divisible by 400 are. Internally the year is anchored to January 1 in UTC and handed to the date-fns isLeapYear primitive, which encodes the same divisibility test. The result drives a single boolean and the February day count (28 or 29) shown alongside it. Non-integer or below-1 inputs return false.

Worked examples

A standard leap year

Enter the year 2024.

Result: 2024 is a leap year, with 29 days in February.

2024 is divisible by 4 and not by 100, so the basic rule applies and the century exception never fires. The next leap year after 2024 is 2028, then 2032.

A century year that is NOT a leap year

Enter the year 1900.

Result: 1900 is not a leap year, with 28 days in February.

The famous Gregorian exception: 1900 is divisible by 100, so it is excluded from the leap cycle even though it is divisible by 4. The same rule excludes 1700, 1800, 2100, 2200, and 2300. This is the calendar correction the Gregorian reform of 1582 introduced over the Julian calendar.

A century year that IS a leap year

Enter the year 2000.

Result: 2000 is a leap year, with 29 days in February.

2000 is divisible by 400, so the exception-to-the-exception fires and the year stays in the leap cycle. The 400-year cycle contains exactly 97 leap years (out of 100 candidates divisible by 4) and 146,097 days, which averages 365.2425 days per year, the actual length of the tropical year to four decimals.

Current year, not a leap year

Enter the year 2026.

Result: 2026 is not a leap year, with 28 days in February.

2026 is not divisible by 4, so the rule rejects it on the first test. The previous leap year was 2024 and the next one is 2028. Most years (303 out of every 400) are non-leap years.

The next "skip" year

Enter the year 2100.

Result: 2100 is not a leap year, with 28 days in February.

2100 is divisible by 100 but not by 400, so the century exception applies and February has 28 days. This is the next time the Gregorian correction will visibly diverge from a simple "every four years" rule, and the first such year for almost everyone alive today.

Edge cases & gotchas

  • Julian-calendar years follow a different rule. The Julian calendar (used in Catholic Europe before October 1582 and in Russia until 1918) had a leap year every 4 years with no exceptions. Under Julian rules 1700, 1800, and 1900 were all leap years; under Gregorian rules they are not. This calculator returns the proleptic Gregorian answer for every input, which will disagree with contemporaneous Julian-dated records before each region adopted the Gregorian reform.
  • Year 0 and negative years are rejected. Astronomers number years continuously through zero (1 BC, 0, AD 1) while historians skip year zero (1 BC, AD 1). The calculator requires a year of 1 or later, so both conventions sidestep the disagreement. Negative years and zero return false rather than a leap-year verdict; if you need to compute proleptic Gregorian leap status for ancient dates, apply the divisibility rule by hand.
  • Non-integer and very large inputs. Decimal years (2024.5) return false because the divisibility rule has no fractional definition. The calculator accepts any positive integer, including five-digit and six-digit years; the Gregorian rule is purely arithmetic and stays well-defined arbitrarily far in the future, although the underlying assumption that the calendar will still be in use is a separate question.
  • The 400-year cycle is exact, not approximate. Every 400 Gregorian years contains 97 leap years and 303 non-leap years, totalling exactly 146,097 days, which is exactly 20,871 weeks. That means the Gregorian calendar repeats every 400 years on the same weekday alignment. February 29, 2024 falls on a Thursday; February 29, 2424 will also fall on a Thursday.

Frequently asked questions about Leap Year Checker

What is the leap-year rule in plain English?

A year is a leap year if it is divisible by 4, except that years divisible by 100 are not leap years, except that years divisible by 400 are. So 2024 is a leap year, 1900 is not, and 2000 is. The two exceptions exist to keep the calendar aligned with the actual length of the solar year (365.2425 days, not exactly 365.25).

Why is 1900 not a leap year but 2000 is?

1900 is divisible by 100 but not by 400, so it triggers the century exception and is excluded from the leap cycle. 2000 is divisible by 400, so the exception-to-the-exception fires and it stays in. The next 400-divisible century is 2400; between now and then, 2100, 2200, and 2300 will all be non-leap years.

When is the next skipped century year?

2100 is the next time a divisible-by-4 year fails to be a leap year. It is divisible by 100 but not by 400, so February 2100 will have 28 days even though the simple "every four years" rule would predict 29. After 2100, the next skip years are 2200 and 2300; 2400 will be a leap year.

How many leap years are there in a century?

A typical century (one not divisible by 400) contains 24 leap years. A century divisible by 400 contains 25. Across the 400-year Gregorian cycle, there are 97 leap years total: three centuries with 24 each, plus one with 25, equals 24 + 24 + 24 + 25 = 97.

Does the calculator handle Julian dates?

No. The calculator applies Gregorian rules to every input, including years before the 1582 Gregorian reform. For Julian-calendar leap-year status (every 4 years, no exceptions) you have to apply the rule by hand. The discrepancy between the two systems was 10 days in 1582 and is currently 13 days, growing by 3 days every 400 years.

Why does February get the leap day, not some other month?

The Roman calendar Julius Caesar reformed in 46 BC originally started the year in March and ended it in February, so the extra day was added to the last month. When January became the start of the year, February kept the leap day by convention. There is no astronomical reason; it is a historical artifact preserved through the Gregorian reform.

Is the answer affected by my time zone?

No. The input is a whole year with no time-of-day component, and the divisibility rule is pure arithmetic. A user in any time zone gets the same verdict for the same year. The internal date-fns call anchors January 1 in UTC, but the result depends only on the year value, not on the anchored timestamp.

Glossary

Leap year
A calendar year with 366 days instead of 365, achieved by adding February 29. In the Gregorian calendar, leap years occur in years divisible by 4 but not by 100, plus years divisible by 400.
Gregorian calendar
The civil calendar introduced by Pope Gregory XIII in 1582 to correct drift in the Julian calendar. The 100-except-400 rule keeps the calendar year aligned with the tropical year to within roughly one day per 3,000 years.
Julian calendar
The pre-Gregorian calendar with a leap year every 4 years and no exceptions. Used across Europe from 45 BC until the Gregorian reform; still used by some Eastern Orthodox churches for liturgical dates.
Century year
A year whose number ends in 00, like 1900 or 2000. Divisible by 100 by construction. The Gregorian rule treats century years specially: skip them unless they are also divisible by 400.
Tropical year
The actual time it takes the Earth to complete one orbit relative to the equinoxes: about 365.2425 days. The Gregorian leap-year rule averages exactly this value over its 400-year cycle, which is why the rule has the form it does.
Proleptic Gregorian calendar
The Gregorian calendar projected backward in time before its 1582 introduction. This calculator returns proleptic Gregorian leap status for every year, which disagrees with contemporaneous Julian records.