Contents Articles Behaviors Books Director News Director Web Sites FAQ Games Mailing Lists News Groups Project Examples Reviews Software Tools Useful Web Sites Utilities Xtras

Don't miss these
 Follow me Field Entry Dialog Box OggXtra PDF Publishing in Multimedia Projects Open File WIth Associated Application Desktop Xtra Puzzler - Puzzle Maker Icon Forge Irregular MIAW Happy Hour Fonts

Get Easter Date

 Compatibilities: Rating:

Author: EricIverson

Returns teh date for Easter in any given Year

 --put easterdate(2000) -- [#day: 23, #month: 4, #year: 2000] --As an added bonus, since Easter always falls on a Sunday, you could theoretically combine this function with a leap year function --and get the day of the week for any date between 1583 and 4099.  But you would also have to be pretty much insane. --Thanks to Greg Mallen for the original algorithm and Ronald W. Mallen of Adelaide Australia for the research.  You can check out his web page at http://www.assa.org.au/edm.html --Any suggestions on how to make the algorithm above even smaller, gratefully appreciated. on GetEasterDate y    --"all arguments are integer types    --    --"INPUTS    --"y is the year (1583 to 4099)    --    --"OUTPUTS    --"d day of month    --"m month    --    --"==========================================================    --    --"This algorithm is adapted from a faq document by Claus Tondering    --"URL: http://www.pip.dknet.dk/~pip10160/calendar.faq2.txt    --"E-mail: c-t@pip.dknet.dk.    --    --"The FAQ algorithm is based in part on the algorithm of Oudin (1940)    --"as quoted in "Explanatory Supplement to the Astronomical Almanac",    --"P. Kenneth Seidelmann, editor.    --    --"Additions by Greg Mallen:    --"(1) adds method 2 calculations (original calculation, converted to    --Gregorian date)    --"(2) modified d and m calculations to account for later dates produced by    --method 2    --    --"==========================================================    --    --Dim g   "golden year - 1    --Dim c   "century    --Dim h   " = (23 - Epact) mod 30    --Dim i   "no of days from March 21 to Paschal Full Moon    --Dim p   "no of days from March 21 to Sunday on or before PFM    --            "(-6 to 28 methods 1 & 3, to 56 for method 2)    --Dim e   "extra days to add for method 2 (converting Julian date to Gregorian    --date)    --    --"calc intermediate vars    --"~~~~~~~~~~~~~~~~~~~~~~    g = y Mod 19    c = y / 100    h = (c - c / 4 - (8 * c + 13) / 25 + 19 * g + 15) Mod 30    i = h - (h / 28) * (1 - (h / 28) * (29 / (h + 1)) * ((21 - g) / 11))    --"return day and month    --"~~~~~~~~~~~~~~~~~~~~    p = i - ((y + y / 4 + i + 2 - c + c / 4) Mod 7)    --" p can be from -6 to 56 (for all valid years 326 to 4099, all methods)    --" corresponds to dates 22 March to 23 May    --" (later dates apply to method 2, although 23 May never actually occurs)    return([#year:y, #day:1 + (p + 27 + (p + 6) / 40) Mod 31, #month:3 + (p + 26) / 30]) end

 Contact MMI 36 South Court Sq Suite 300 Newnan, GA 30263 USA Send e-mail