RosettaCodeData/Task/Long-year/Loglan82/long-year.loglan82
2026-04-30 12:34:36 -04:00

29 lines
578 B
Text

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