Skip to content
Holidays

Why Easter Moves Every Year (and How to Predict the Date)

Easter is the first Sunday after the first ecclesiastical full moon on or after March 21. The rule is medieval; the date bounces between March 22 and April 25.

Most public holidays sit on the same calendar date every year. Christmas is December 25, Independence Day is July 4, New Year’s Day is January 1. Easter is the great exception. Its date moves across a five-week window — March 22 to April 25 — and the move is governed by a medieval algorithm that fuses the Sun and the Moon.

The rule, in one sentence

Easter Sunday is the first Sunday after the first ecclesiastical full moon that falls on or after March 21.

Three pieces of vocabulary need unpacking.

  • Ecclesiastical full moon: not the actual full moon, but the full moon as listed in the church’s lunar tables. The two usually agree to within a day, but the church uses fixed tables — they are easier to publish in a calendar than astronomical predictions.
  • March 21: the assumed date of the spring equinox in the Western (Gregorian) computus. The actual equinox shifts between March 19 and March 21, but the rule fixes it at 21 for simplicity.
  • First Sunday after: if the full moon falls on a Sunday, Easter is the following Sunday — never the same day as the full moon.

Apply those three rules together and you get a date that depends jointly on the Sun (March 21 anchor), the Moon (the full moon), and the seven-day week (the Sunday).

How to compute it

The full algorithm is called the computus. The simplest closed-form version is Gauss’s algorithm (1816), which uses only arithmetic on the year number. A short version:

a = year mod 19
b = year div 100
c = year mod 100
d = b div 4
e = b mod 4
f = (b + 8) div 25
g = (b - f + 1) div 3
h = (19a + b - d - g + 15) mod 30
i = c div 4
k = c mod 4
l = (32 + 2e + 2i - h - k) mod 7
m = (a + 11h + 22l) div 451
month = (h + l - 7m + 114) div 31
day = ((h + l - 7m + 114) mod 31) + 1

The result is the Gregorian month and day of Easter Sunday. For 2026 it returns April 5; for 2027, March 28; for 2028, April 16. The math is exact for any year from 1583 forward.

Why the rule looks the way it does

Easter inherits its lunar character from Passover. The Last Supper, in the Christian tradition, was a Passover seder, and Passover begins on the 15th of Nisan in the Hebrew calendar — a date set by the lunar cycle and the spring equinox. Early Christian communities computed Easter accordingly, but using local Hebrew calendars produced different dates in different cities.

In 325 the Council of Nicaea ruled that Easter should be observed on the same Sunday across the church, computed independently of the Hebrew calendar. The computus emerged over the next several centuries to provide a single, reproducible rule.

Western vs Orthodox Easter

The Western and Eastern churches both follow the Nicaean rule, but they apply it on different calendars.

  • Western (Catholic, most Protestant): Gregorian calendar plus a Gregorian lunar table.
  • Eastern Orthodox: Julian calendar plus the older lunar table.

Because the Julian calendar now lags the Gregorian by 13 days, and the lunar tables differ, the two Easters can fall on the same Sunday or be one, four, or five weeks apart. Roughly one-third of years see them coincide.

When Easter is unusually early or late

The 35-day window means Easter is “early” if it lands in late March and “late” if it lands in late April. The earliest Western Easter in living memory was March 22, 2008. The latest in the 21st century will be April 25, 2038. Specific years that stick out:

YearWestern EasterNotes
2024March 31First “early” Easter of the 2020s
2026April 5Mid-window
2027March 28Early
2030April 21Late
2038April 25Latest possible

When you see Easter labeled as “estimated” in a software calendar, this is usually because the holiday library declines to commit to dates beyond a horizon (typically 50 years) where calendar reform might intervene.

Why this matters for software

Easter does not just affect Christian observances. The computus is also the basis for Good Friday, Easter Monday, Ash Wednesday, Pentecost, and Corpus Christi, all of which are public holidays in many European and Latin American countries.

A correct holiday library has to:

  1. Implement the Gregorian computus for Western dates.
  2. Implement the Julian computus for Orthodox dates.
  3. Compute the dependent dates (e.g., Good Friday is two days before Easter Sunday).
  4. Apply the right rule per country — France uses Western; Greece uses Orthodox; Cyprus has different rules in different communities.

When you generate a year’s holidays for any of these countries, the computus runs once per year and propagates a chain of dependent dates. It’s one of the few cases where a public holiday’s calendar entry is the output of an algorithm rather than a fixed string.

More related articles