logo  How To Calculate the Date of Easter
This Chapter
Date Functions
Advent
Bank Hol (UK)
Chinese Calendar
Easter
Easter-Orthodox
Epoch Dates
Hebrew Calendar
Iso-Week Calendar
Nearest Weekday
Week Of Month
Other Dates
Chapters
Home Page
Colours, RGB
Computer Specifications
Dates&Times
Disk Drives
Files
Folders
GPS and OS Ref
VB.Net Forms
Image Files
If & Select
List/Array
Mathematics
NuGet
Sound
String Functions
Sun and Moon
User Controls
Validation
DigitalDan Sites
My Other Sites
Contact Site

Note
Some pages
may contain
inaccuracies
Hits=5
This formula calculates the date that Easter Sunday will be celebrated for any "normal year." However, as with any Calendrical Calculation, programmers need to be aware of certain limitations.

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.

' 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