- These results provide dates for Easter Sunday as determined by the Catholic Church. The formula used by most Orthodox (and most Coptic) Christians is listed on the Orthodox Easter page.
- The modern (Gregorian) calendar was not used until 15 Oct 1582, and many countries retained the old (Julian) calander for centuries afterwards. The formula calculates Gregorian dates - The UK switched calendars in 1752 and the formula can only be used in the UK for dates after 1752.
- Acknowledgements - Calenderical Calculations (Meeus), Computus (Catholic Church)
Public Function Easter(yyyy As Integer) As Date
'Based on Meeus Calendrical calculations Chapter 4
'Probably devised 1876 and used in Butchers Ecclesiastical Calendar
Dim a As Integer = yyyy Mod 19
Dim b As Integer = yyyy \ 100
Dim c As Integer = yyyy Mod 100
Dim d As Integer = b \ 4
Dim e As Integer = b Mod 4
Dim f As Integer = (b + 8) \ 25
Dim g As Integer = (b - f + 1) \ 3
Dim h As Integer = (19 * a + b - d - g + 15) Mod 30
Dim i As Integer = c \ 4
Dim k As Integer = c Mod 4
Dim l As Integer = (32 + 2 * e + 2 * i - h - k) Mod 7
Dim m As Integer = (a + 11 * h + 22 * l) \ 451
Dim n As Integer = (h + l - 7 * m + 114) \ 31
Dim p As Integer = (h + l - 7 * m + 114) Mod 31
Return New Date(yyyy, n, p + 1, 12, 0, 0, 0, 0)
End Function
Other Dates Based on Easter
The following feast dates can be calculated using the Easter Function.
- Feast/festival dates relate to the UK(unless otherwise stated)
- Some countries/religions will celebrate festivals on different days to the UK
' yyyy = year (as Integer)
Dim Quinquagesima as Date = Easter(yyyy).AddDays(-49)
Dim ShroveTuesday as Date = Easter(yyyy).AddDays(-47)
'Shrove Tuesday is also known as Pancake Day
Dim AshWednesday as Date = Easter(yyyy).AddDays(-46)
'Ash Wednesdat marks the Start of Lent
Dim MothersDay as Date = Easter(yyyy).AddDays(-21)
'Mothers Day is also known as Mothering Sunday
'This is for UK . The date in USA etc,. is different
Dim PassionSunday as Date = Easter(yyyy).AddDays(-14)
Dim PalmSunday as Date = Easter(yyyy).AddDays(-7)
Dim MaundayThursday as Date = Easter(yyyy).AddDays(-3)
Dim GoodFriday as Date = Easter(yyyy).AddDays(-2)
'Public Holiday in UK
Dim HolySaturday as Date = Easter(yyyy).AddDays(-1)
Dim EasterSunday as Date = Easter(yyyy)
Dim EasterMonday as Date = Easter(yyyy).AddDays(1)
'Public Holiday in UK
Dim Quasimodo as Date = Easter(yyyy).AddDays(7)
Dim RogationSunday as Date = Easter(yyyy).AddDays(35)
Dim AscentionDay as Date = Easter(yyyy).AddDays(39)
Dim Pentecost as Date = Easter(yyyy).AddDays(49)
Dim TrinitySunday as Date = Easter(yyyy).AddDays(56)
Dim CorpusChristi as Date = Easter(yyyy).AddDays(60)
DigitalDan.co.uk