Access World Forums

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

isladogs 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

isladogs 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.

MS ACCESS PROBZZZ 07-10-2018 04:45 PM

Re: How to calculate Easter for any year
Is it possible to do this as an Access function instead of VBA so I can store this in a table? Or should I not be storing the date in my table?

The end result I'm looking for is to have a form where I enter "press pitch info" and then select an appropriate holiday name from a combo box. Based on that selection the form should display the correct date of the next instance of this holiday.

So I think I will need a table:

I only know how to use VBA with forms, not with tables, and can't think of a method for this.

Do you have any pointers?

isladogs 07-10-2018 04:54 PM

Re: How to calculate Easter for any year
1 Attachment(s)
You posted to the repository which is a moderated area.
In this case, luckily I saw the post almost as soon as you did it ...


Public Function GetEasterSunday(Yr As Integer) As Date
This is an Access function!
Put the code into a standard module and call it from a form button
Similarly with other similar date calculations

Both the Holidays021 database (see post #2) and the one attached (which was written by Pat Hartman) will give you more idea on how to use date functions in forms

As the holiday dates will not change (for any calendar year), it is perfectly OK to store them in a table if you wish

All times are GMT -8. The time now is 03:42 AM.

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