# How to calculate Easter for any year (1 Viewer)

Status
Not open for further replies.

##### CID VIP
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 ....

Code:
Public Function GetEasterSunday(Yr As Integer) As Date

'Code taken from 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)

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

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

http://www.cpearson.com/Excel/MainPage.aspx

Last edited:

##### CID VIP
More Holiday Dates

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.

#### Attachments

• Holidays021.zip
169.6 KB · Views: 138

#### MS ACCESS PROBZZZ

##### Registered User.
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:
Tbl_Holidays
Holiday_ID
HolidayName
HolidayDate

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?

##### CID VIP
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 ...

Code:
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

#### Attachments

• UsefulDateFunctions.zip
200.3 KB · Views: 91
Status
Not open for further replies.

Replies
19
Views
329
Replies
7
Views
1,246
Replies
2
Views
19,873
Replies
0
Views
13,592