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
@