Updated 7 July 2017
The function below calculates Easter Sunday for any year.
Apparently, that is the first Sunday after the first ecclesiastical full moon that occurs on or after March 21.
And there was me thinking they just made it up every year ....
Public Function GetEasterSunday(Yr As Integer) As Date
'Code based on http://www.cpearson.com/excel/Easter.aspx
Dim D As Integer
D = (((255 - 11 * (Yr Mod 19)) - 21) Mod 30) + 21
GetEasterSunday = DateSerial(Yr, 3, 1) + D + (D > 48) + 6 - ((Yr + Yr \ 4 + D + (D > 48) + 1) Mod 7)
That's all there is to it!
The code is adapted from code written by Chip Pearson for Excel
I made some minor tweaks to use it in Access
Apparently its 'only' guaranteed to be correct between 1900 and 2368 - I've no idea why.
After that it doesn't always work
However, if you're planning to still be around in 2369, you've got plenty of time to modify the code .. and to post me a new version hereto upload here!
If you've never checked Chip's site, I strongly recommend it.
Unfortunately Chip Pearson died in 2018 but his website is still available
It also has code to calculate other holiday dates (mainly USA such as Thanksgiving)
Also many other 'goodies' such as Programming The VBA Editor using the VBA reference library: Microsoft Visual Basic For Applications Extensibility 5.3
Colin Riddington Mendip Data Systems Last Updated 7 July 2017