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 
@