To keep things well defined, I have used the following method constants in Visual Basic code below, and have included argument checking in all VB algorithms.
' EASTER SUNDAY DATE CALCULATION ' This procedure returns Easter Sunday day and month ' for a specified year and method.
I have reverse-engineered this algorithm to reproduce the source tables and they match exactly.
It is not the shortest algorithm, but because it can be proved to be directly derived from the published definition, I am confident this method is 100% accurate.
The Julian calendar had fallen out of alignment in measuring solar years (keeping months aligned with seasons) well before the Gregorian calendar was introduced.
Nevertheless, the Julian calendar is still used today by Orthodox churches as the basis for their Easter.
These usually have year restrictions and only calculate one type of Easter date (there are 3 types - read below).
Even worse, many don't even state what their limitation are, or claim extraordinary coverage such as from 1AD to forever (this is just nonsense - the earliest valid year for any algorithm is 326 AD in the Julian calendar, and the Gregorian calendar is valid until about 4099 AD).
So Easter algorithms using the Gregorian calendar apply to years 1583 AD to 4099 AD.
' Either at the time of the calendar change or at a later ' date, some (but not all) regions have used a revised ' Easter date calculation based on the Gregorian calendar. The original calculation, with the Julian date ' converted to the equivalent Gregorian date ' 3.
The revised calculation based on the Gregorian calendar ' Most Western churches moved from method 1 to method 3 at ' the adoption of the Gregorian calendar, while most ' Orthodox churches moved from method 1 to method 2. It is important ' check the history of the region in question to find the ' correct date of their change from Julian to Gregorian ' calendars, and if applicable, their change from the ' original to revised Easter Sunday date calculation.
Of course, churches still using the Julian calendar simply convert their Julian Easter Sunday date to the equivalent date in the Gregorian calendar.
So there are 3 possible ways to calculate Easter date.