Easter monday calculation

Database
Fan

Easter monday calculation

Hello,

does anybody know how to simply calculate Easter monday in TD SQL.

THX

2 REPLIES
Junior Contributor

Re: Easter monday calculation

There's no simple calculation for easter monday :-)

I did that some years ago:

/***

Calculation of easter sunday, implemented using an algorithm from
http://www.merlyn.demon.co.uk/estralgs.txt

Based on easter sunday the moveable christian feasts can be calculated, e.g.:
Ascension Day - 39 days after easter sunday
Pentecost - 49 days after easter sunday
Corpus Christi - 60 days after easter sunday

SELECT easter_sunday(2013);

*** Query completed. One row found. One column returned.
*** Total elapsed time was 1 second.

easter_sunday(2013)
-------------------
2013-03-31
***/

REPLACE FUNCTION easter_sunday(yr INTEGER)
RETURNS DATE
SPECIFIC easter_sunday_I
RETURNS NULL ON NULL INPUT
CONTAINS SQL
DETERMINISTIC
COLLATION INVOKER
INLINE TYPE 1
RETURN
((yr-1900)*10000 + 0301 (DATE)) +
((((170-((YR MOD 19*3510+((((YR/100)*733+363)/25) + (YR/400))*319)/330) MOD 29+(YR+(YR/4)-(YR/100)+(YR/400))*57)/7)*7 MOD 57)-1)
;

REPLACE FUNCTION easter_sunday(cdate DATE)
RETURNS DATE
SPECIFIC easter_sunday_DT
RETURNS NULL ON NULL INPUT
CONTAINS SQL
DETERMINISTIC
COLLATION INVOKER
INLINE TYPE 1
RETURN easter_sunday(EXTRACT(YEAR FROM cdate))
;

REPLACE FUNCTION easter_sunday(cdate TIMESTAMP)
RETURNS DATE
SPECIFIC easter_sunday_TS
RETURNS NULL ON NULL INPUT
CONTAINS SQL
DETERMINISTIC
COLLATION INVOKER
INLINE TYPE 1
RETURN easter_sunday(EXTRACT(YEAR FROM cdate))
;
Fan

Re: Easter monday calculation

You are great Dieter.

Thank you very much