/* REXX EASTER */ arg years "((" opts opts = Strip(opts,"T",")") /* harvest trailing banana */ parse var opts "TRACE" tv . parse value tv "O" with tv . /* guarantee a value */ rc = Trace(tv) /* init trace */ if years = "" then, years = Left(Date("S"),4) do while years <> "" /* every year */ parse var years jhr years call CALC /* -*/ end /* years */ exit /*@ EASTER */ /* ----------------------------------------------------------------- */ CALC: /*@ */ A = JHR // 19 B = JHR // 4 C = JHR // 7 D = (19*A +24) // 30 /* max = 29 */ E = (5 + 2*B + 4*C + 6*D) // 7 /* max = 6 */ DAYS = D + E /* max = 35 */ if days > 9 then, SAY "Easter Sunday" JHR "is on" DAYS - 9 "April" /* 10 - 35 */ else, SAY "Easter Sunday" JHR "is on" DAYS + 22 "March" /* 1 - 9 */ return /*@ CALC */