MODULE TimeDiff2;
FROM Calendar IMPORT CurrentTime, ConvertTime,
ConvertDate, Calendarday, Date, Day, Daytime,
Month, Year, DateOK;
FROM InOut IMPORT Done, Write, ReadCard, WriteInt,
WriteCard, WriteLn, WriteString;
FROM SysExit IMPORT Exit;
PROCEDURE ReadValue(min, max: CARDINAL) : CARDINAL;
VAR input: CARDINAL;
BEGIN ReadCard(input);
IF ~Done THEN
WriteString("Unerwarteter Fehler beim Einlesen!");
WriteLn; Exit(1);
END;
IF (input < min) OR (input > max) THEN
WriteString("Wert ausserhalb des Intervalls von [");
WriteCard(min, 1); WriteString("..");
WriteCard(max, 1); WriteString("]!"); WriteLn;
Exit(1);
END;
RETURN input
END ReadValue;
BEGIN
WriteString("Bitte Tag eingeben: ");
future.day := ReadValue(MIN(Day), MAX(Day));
WriteString("Bitte Monat eingeben: ");
future.month := ReadValue(MIN(Month), MAX(Month));
WriteString("Bitte Jahr eingeben: ");
future.year := ReadValue(MIN(Year), MAX(Year)); WriteLn;
IF ~DateOK(future.year, future.month, future.day) THEN
WriteString("Ein solches Datum gibt es nicht!");
WriteLn; Exit(1);
END; (* ... der Rest ist unveraendert ... *)
END TimeDiff2.
|