Works fine. See one REXX version: /******/ trace r arg year . c = year % 100 n = year - 19 * ( year % 19 ) k = ( c - 17 ) % 25 i = c - c % 4 - ( c - k ) % 3 + 19 * n + 15 i = i - 30 * ( i % 30 ) i = i - ( i % 28 ) * ( 1 - ( i % 28 ) * ( 29 % ( i + 1 ) ) , * ( ( 21 - n ) % 11 ) ) j = year + year % 4 + i + 2 - c + c % 4 j = j - 7 * ( j % 7 ) l = i - j m = 3 + ( l + 40 ) % 44 m = right(m,2,"0") d = l + 28 - 31 * ( m % 4 ) d = right(d,2,"0") Say date("N",year||m||d,"S") exit ______________________________________________ Clovis
From: Kris Buelens <kris.buel...@gmail.com> To: IBMVM@LISTSERV.UARK.EDU Date: 29/12/2010 14:53 Subject: Re: Movable Feasts Sent by: The IBM z/VM Operating System <IBMVM@LISTSERV.UARK.EDU> And there is // to get the remainder of a division. 2010/12/29 Gentry, Stephen <stephen.gen...@lafayettelife.com> So it would appear. At least it works for me. I didn't know about the "%" (w/o quotes). I learned something today. -----Original Message----- From: The IBM z/VM Operating System [mailto:ib...@listserv.uark.edu] On Behalf Of Les Koehler Sent: Wednesday, December 29, 2010 11:01 AM To: IBMVM@LISTSERV.UARK.EDU Subject: Re: Movable Feasts So just change the / to % and you have a Rexx program :-) Les Jim Bohnsack wrote: > Here are dates that could be put into a table. > > The following are dates of Easter from 1980 to 2024: > > 1980 April 6 1995 April 16 2010 April 4 > > 1981 April 19 1996 April 7 2011 April 24 > > 1982 April 11 1997 March 30 2012 April 8 > > 1983 April 3 1998 April 12 2013 March 31 > > 1984 April 22 1999 April 4 2014 April 20 > > 1985 April 7 2000 April 23 2015 April 5 > > 1986 March 30 2001 April 15 2016 March 27 > > 1987 April 19 2002 March 31 2017 April 16 > > 1988 April 3 2003 April 20 2018 April 1 > > 1989 March 26 2004 April 11 2019 April 21 > > 1990 April 15 2005 March 27 2020 April 12 > > 1991 March 31 2006 April 16 2021 April 4 > > 1992 April 19 2007 April 8 2022 April 17 > > 1993 April 11 2008 March 23 2023 April 9 > > 1994 April 3 2009 April 12 2024 March 31 > > > > > Here's the formula. It's a SMOP (simple matter of programming). > > > Computing the Date of Easter > > The rule is that Easter is the first Sunday after the first > ecclesiastical full moon that occurs on or after March 21. The lunar > cycles used by the ecclesiastical system are simple to program. The > following algorithm will compute the date of Easter in the Gregorian > Calendar system. > > Please note the following: *This is an _integer_ calculation. All > variables are integers and all remainders from division are dropped.* > > The algorithm uses the year, /y/, to give the month, /m/, and day, /d/, > of Easter. The symbol * means multiply. > > c = y / 100 > n = y - 19 * ( y / 19 ) > k = ( c - 17 ) / 25 > i = c - c / 4 - ( c - k ) / 3 + 19 * n + 15 > i = i - 30 * ( i / 30 ) > i = i - ( i / 28 ) * ( 1 - ( i / 28 ) * ( 29 / ( i + 1 ) ) > * ( ( 21 - n ) / 11 ) ) > j = y + y / 4 + i + 2 - c + c / 4 > j = j - 7 * ( j / 7 ) > l = i - j > m = 3 + ( l + 40 ) / 44 > d = l + 28 - 31 * ( m / 4 ) > > > For example, using the year 2010, > y=2010, > c=2010/100=20, > n=2010 - 19 x (2010/19) = 15, > etc. resulting in Easter on April 4, 2010. > > The algorithm is due to J.-M. Oudin (1940) and is reprinted in the > Explanatory Supplement to the Astronomical Almanac > <http://aa.usno.navy.mil/publications/docs/related.html#expsup>, ed. P. > K. Seidelmann (1992). See Chapter 12, "Calendars" > <http://astro.nmsu.edu/%7Elhuber/leaphist.html>, by L. E. Doggett. > > Jim > > > > On 12/29/2010 8:42 AM, Buettner, Wolfgang wrote: >> This is a multi-part message in MIME format. >> >> ------_=_NextPart_001_01CBA75E.2DEACDB1 >> Content-Type: text/plain; >> charset=us-ascii >> Content-Transfer-Encoding: quoted-printable >> >> We have some services which should be up during normal working hours >> only, i.e. not on weekends and not on public holidays either. >> >> Could be done by WAKEUP, but ... >> >> How to code movable feasts like Easter Monday and others depending on >> the first full moon in spring? >> >> I know the formula is complex, so I believe it would be very much >> simpler to get those dates from an actual calendar and hard-code them >> each year than to write a REXX. >> >> Any other ideas? >> >> >> >> Thank you and a Happy New Year, >> >> Wolfgang >> >> >> Software AG - Group Executive Board: Karl-Heinz Streibich >> (Vorsitzender/Chai= >> rman), Arnd Zinnhardt, Mark Edwards, David Broadbent, Josef >> Bommersbach, Dr.= >> Wolfram Jost, Kamyar Niroumand, Ivo Totev >> >> Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany, - >> Registe= >> rgericht/Commercial register: Darmstadt HRB 1562 - Vorstand/ >> Management Boar= >> d: Karl-Heinz Streibich (Vorsitzender/Chairman), David Broadbent, Dr. >> Wolfra= >> m Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/ Chairman of the >> Supervi= >> sory Board: Dr. Andreas Bereczky - http://www.softwareag.com/ >> >> >> ------_=_NextPart_001_01CBA75E.2DEACDB1 >> Content-Type: text/html; >> charset=us-ascii >> Content-Transfer-Encoding: quoted-printable >> >> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 >> Transitional//EN"><HTML><head><M= >> ETA content=3D"text/html; charset=3Dus-ascii" >> http-equiv=3D"Content-Type"> >> >> >> >> >> >> <META content=3D"text/html; charset=3Dus-ascii" >> http-equiv=3DContent-Type> >> <META content=3D"MSHTML 8.00.6001.18999" name=3DGENERATOR></head><BODY> >> <DIV><FONT FACE=3D"Trebuchet MS" SIZE=3D"1"><FONT SIZE=3D"3"> >> <DIV><FONT face=3DArial size=3D2><SPAN class=3D729260409-01122010> >> <P class=3DMsoNormal style=3D"MARGIN: 0cm 0cm 0pt"><SPAN lang=3DEN-GB >> style= >> =3D"FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB">We >> have s= >> ome services which should be up during normal working hours >> only, i.e. not on weekends and not on public holidays either.</SPAN></P> >> <P class=3DMsoNormal style=3D"MARGIN: 0cm 0cm 0pt"><SPAN lang=3DEN-GB >> style= >> =3D"FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: >> EN-GB"></SPAN><S= >> PAN lang=3DEN-GB style=3D"mso-ansi-language: EN-GB"><?xml:namespace >> prefix = >> =3D o ns =3D >> "urn:schemas-microsoft-com:office:office" /><o:p><SPAN >> class=3D729260409-011= >> 22010>Could be done by WAKEUP, but >> =2E.. </SPAN></o:p></SPAN></P> >> <P class=3DMsoNormal style=3D"MARGIN: 0cm 0cm 0pt"><SPAN lang=3DEN-GB >> style= >> =3D"FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB">How >> to co= >> de movable feasts like Easter Monday and others >> depending on the first full moon in spring?</SPAN><SPAN lang=3DEN-GB >> style= >> =3D"mso-ansi-language: EN-GB"><o:p></o:p></SPAN></P> >> <P class=3DMsoNormal style=3D"MARGIN: 0cm 0cm 0pt"><SPAN lang=3DEN-GB >> style= >> =3D"FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB">I >> know th= >> e formula is complex, so<SPAN class=3D729260409-01122010> I >> believe</SPAN> it would be very much simpler to <SPAN >> class=3D7292= >> 60409-01122010>get</SPAN>those dates<SPAN class=3D729260409-01122010> >> from an actual calendar and hard-code them</SPAN> each year than >> to wri= >> te a >> REXX.</SPAN><SPAN lang=3DEN-GB style=3D"mso-ansi-language: >> EN-GB"><o:p></o:p= >>> </SPAN></P> >> <P class=3DMsoNormal style=3D"MARGIN: 0cm 0cm 0pt"><SPAN lang=3DEN-US >> style= >> =3D"FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-US">Any >> other= >> ideas? </SPAN><SPAN lang=3DEN-GB style=3D"mso-ansi-language: >> EN-GB"><o= >> :p></o:p></SPAN></P> >> <P class=3DMsoNormal style=3D"MARGIN: 0cm 0cm 0pt"><SPAN lang=3DEN-GB >> style= >> =3D"mso-ansi-language: EN-GB"><FONT size=3D3><FONT face=3D"Times New >> Roman">= >> <o:p></o:p></FONT></FONT></SPAN></P> >> <P class=3DMsoNormal style=3D"MARGIN: 0cm 0cm 0pt"><SPAN lang=3DEN-GB >> style= >> =3D"FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: >> EN-GB">Thank you= >> <SPAN class=3D729260409-01122010> and a Happy New >> Year</SPAN>,</SPAN><SPAN lang=3DEN-GB style=3D"mso-ansi-language: >> EN-GB"><o:= >> p></o:p></SPAN></P> >> <P class=3DMsoNormal style=3D"MARGIN: 0cm 0cm 0pt"><SPAN lang=3DES >> style=3D"= >> FONT-FAMILY: Arial; FONT-SIZE: 10pt">Wolfgang</SPAN><SPAN >> lang=3DES><o:p></o= >> :p></SPAN></P></SPAN></FONT></DIV></FONT><BR></FONT> >> <DIV ALIGN=3D"left"><FONT FACE=3D"Trebuchet MS"> </FONT></DIV> >> <DIV ALIGN=3D"center"> >> <TABLE BORDER=3D"1" BORDERCOLOR=3D"#666666" CELLPADDING=3D"5" >> CELLSPACING= >> =3D"0" WIDTH=3D"100%"> >> <TBODY> >> <TR> >> <TD> >> <DIV ALIGN=3D"left"><SPAN CLASS=3D"style3"><FONT COLOR=3D"gray"><FONT >> FACE= >> =3D"Trebuchet MS"><FONT SIZE=3D"1"><SPAN CLASS=3D"style4"> >> Software AG– Group Executive Board: Karl-Heinz Streibich >> (Vorsitzende= >> r/Chairman), Arnd Zinnhardt, Mark Edwards, David Broadbent, Josef >> Bommersbac= >> h, Dr. Wolfram Jost, Kamyar Niroumand, Ivo Totev<BR><BR> >> Sitz/Registered office: Uhlandstraße 12, 64297 Darmstadt, >> Germany,R= >> 11; Registergericht/Commercial register: Darmstadt HRB 1562 - >> Vorstand/ Mana= >> gement Board: Karl-Heinz Streibich (Vorsitzender/Chairman), David >> Broadbent,= >> Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/ >> Chairman of = >> the Supervisory Board: Dr. Andreas Bereczky</SPAN>-</FONT></FONT></FONT>= >> <A HREF=3D"http://www.softwareag.com/"><FONT COLOR=3D"gray"><FONT >> FACE=3D"Tr= >> ebuchet MS"><FONT SIZE=3D"1"><FONT >> COLOR=3D"navy"><STRONG>http://www.softwar= >> eag.com</STRONG></FONT> >> </FONT></FONT></FONT></A></SPAN></DIV></TD></TR></TB= >> ODY></TABLE></DIV> >> <DIV ALIGN=3D"left"><FONT FACE=3D"Trebuchet MS" SIZE=3D"1"> >> </FONT></DIV> >> <DIV><FONT FACE=3D"Trebuchet MS" >> SIZE=3D"1"><BR></FONT></DIV></DIV></BODY></= >> HTML> >> >> ------_=_NextPart_001_01CBA75E.2DEACDB1-- > -- Kris Buelens, IBM Belgium, VM customer support