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' @