Code Samples for Businesses, Schools & Developers

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

   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)

End Function

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

Return to Code Samples Page Return to Top