29 lines
588 B
ObjectPascal
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.
|