Exkurs: Zeit in der Ulmer Oberon-Bibliothek III

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

TimeDiff.om
PROCEDURE PrintTimeDiff(time1, time2: Times.Time);
   VAR
      diff: Times.Time;
      dateval: Dates.ValueRec;
BEGIN
   (* avoid differences with a negative result *)
   IF Op.Compare(time1, time2) >= 0 THEN
      (* diff := time1 - time2 *)
      Op.Sub3(diff, time1, time2);
   ELSE
      Op.Sub3(diff, time2, time1);
   END;
   Dates.GetValue(diff, dateval);
   Write.Int(dateval.days, 1); Write.String(" days, ");
   Write.Int(dateval.hours, 1); Write.String(" hours, and ");
   Write.Int(dateval.minutes, 1); Write.Line(" minutes.");
END PrintTimeDiff;

*Operationen mit Zeiten sind möglich, so kann z.B. aus der Differenz zweier absoluter Zeiten eine relative Zeitangabe gebildet werden.
 
*Op wird hier als Abkürzung für das Modul Operations verwendet, das arithmetische Operationen für beliebige Datentypen (wie z.B. Times.Time) unterstützen kann.
 

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