Access World Forums

Access World Forums (
-   Code Repository (
-   -   How to calculate Easter for any year (

ridders 07-07-2017 01:41 PM

How to calculate Easter for any year
I mentioned this in another thread earlier today.

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 taken from

    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 it!

The code is by Chip Pearson who is, in my view anyway, the Excel equivalent of Allen Browne.
I just made 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 a new version here :o

If you've never checked Chip's site, I strongly recommend it.
He also has code to calculate other holiday dates (mainly USA such as Thanksgiving)
Lots of other 'goodies' such as 'Programming The VBA Editor' using the 'Microsoft Visual Basic For Applications Extensibility 5.3' reference library

ridders 01-11-2018 02:42 AM

More Holiday Dates
1 Attachment(s)
The attached database Holidays021 calculates a variety of holiday dates for various different calendars and religions

Word doc included with further explanations

The attached database isn't mine and I don't have the author details.
I know its several years old but that makes it no less useful.

Please let me know if it is yours or you know who wrote it.

All times are GMT -8. The time now is 08:32 AM.

Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
(c) copyright 2017 Access World