RosettaCodeData/Task/Long-year/Pascal-P/long-year.pas
2026-04-30 12:34:36 -04:00

29 lines
588 B
ObjectPascal

program longyear(input, output);
(* Long year *)
var
s, e, y: integer;
(* Weekday of y-12-31, 0 = Sunday *)
function wd(y: integer): integer;
begin
wd := (y + y div 4 - y div 100 + y div 400) mod 7;
end;
(* true if and only if y is a long year *)
function isly(y: integer): boolean;
begin
isly := (wd(y) = 4) or (wd(y - 1) = 3);
end;
begin
writeln('**** List of ISO long years ****');
write('Start year: ');
read(s);
write('End year: ');
read(e);
for y := s to e do
if isly(y) then
write(y: 5);
writeln;
(* readln; *)
end.