RosettaCodeData/Task/Long-year/Modula-2/long-year.mod2

23 lines
488 B
Plaintext

MODULE LongYear;
FROM InOut IMPORT WriteCard, WriteLn;
VAR year: CARDINAL;
PROCEDURE isLongYear(year: CARDINAL): BOOLEAN;
PROCEDURE p(year: CARDINAL): CARDINAL;
BEGIN
RETURN (year + year DIV 4 - year DIV 100 + year DIV 400) MOD 7;
END p;
BEGIN
RETURN (p(year) = 4) OR (p(year-1) = 3);
END isLongYear;
BEGIN
FOR year := 2000 TO 2100 DO
IF isLongYear(year) THEN
WriteCard(year, 4);
WriteLn;
END;
END;
END LongYear.