Überprüfungen

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

TimeDiff2.m2
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. 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 13.01.1999