From: Jeremy McAnally Date: 2007-04-09T11:44:08+09:00 Subject: Re: Proposal: Yet another Date method I wrote something that tests for Easter, Christmas, 4th of July, and so on wrapped into a method called "is_national_holiday?" that I planned on releasing as a gem, but I never did...I still have it if you actually need something that doees this. --Jeremy On 4/8/07, Bertram Scharpf wrote: > Hi, > > I would like the Date class to be extended by this: > > require "date" > > class Date > class < def easter_western year > # This is after Donald E. Knuth and it works for both > # Julian (before 1583) and Gregorian (after 1582) calendars. > g = year%19 + 1 # golden number > c = year/100 + 1 # century > x = (3*c/4) - 12 # corrections > z = (8*c+5)/25 - 5 > d = 5*year/4 - x - 10 # March((-d)%7)th is Sunday > e = (11*g + 20 + z - x) % 30 # moon phase > e += 1 if e == 25 and g > 11 or e == 24 > n = 44 - e # full moon > n += 30 if n < 21 > month = 3 > day = n+7 - (d+n)%7 > if day > 31 then > month += 1 > day -= 31 > end > civil year, month, day > end > alias easter easter_western > end > end > > I tested it with all easter date tables I found on the web > in German, English and French. > > Happy Easter! > > Bertram > > > -- > Bertram Scharpf > Stuttgart, Deutschland/Germany > http://www.bertram-scharpf.de > > -- http://www.jeremymcanally.com/ My free Ruby e-book: http://www.humblelittlerubybook.com/book/ My blogs: http://www.mrneighborly.com/ http://www.rubyinpractice.com/