EASTERHILL@ begin integer year, month, day; integer procedure easter sunday(y); value y; integer y; begin integer a, b, c, h; integer procedure rem(a, b); value a, b; integer a, b; begin integer c; c := a / b; rem := a - b * c end rem; a := rem(y, 19); b := y / 100; c := rem(y, 100); h := rem((19 * a + b - b / 4 + 15 - ((8 * b + 13) / 25)), 30); c := rem((2 * (rem(b, 4) + c / 4) - h - rem(c, 4) + 32), 7); h := h + c - 7 * ((a + 11 * h + 19 * c) / 433); a := (h + 90) / 25; easter sunday := rem(100 * a + (33 * a + h + 19), 32) end easter sunday; for year := 2010 step 1 until 2029 do begin day := easter sunday(year); month := day / 100; day := day - 100 * month; write text(30, ``c''); write(30, format(`ndddd'), year); if month = 3 then write text(30, ` March') else write text(30, ` April'); write(30, format(`ndd'), day) end end @