MODULE tomorrow; FROM InOut IMPORT WriteString,WriteLn,WriteCard,ReadInt,ReadCard; TYPE Year = INTEGER; Month = [1..12]; Day = [1..31]; Date = RECORD year:Year; month:Month; day:Day END; PROCEDURE ReadDate(VAR date:Date); VAR n:CARDINAL; BEGIN (* läs in ett datum *) ReadInt(date.year); ReadCard(n); date.month:=n; ReadCard(n); date.day:=n END ReadDate; PROCEDURE LastDayInMonth(year:Year; month:Month):Day; BEGIN (* beräkna antal dagar i denna månad *) CASE month OF 11, 4, 6, 9: RETURN 30 | 2: (* skottår? *) IF (year MOD 4=0) AND (year MOD 100#0) OR (year MOD 400=0) THEN RETURN 29 ELSE RETURN 28 END ELSE RETURN 31 END END LastDayInMonth; PROCEDURE NextDay(date1:Date; VAR date2:Date); BEGIN (* beräkna nästa dags datum *) IF date1.day