Berechnung der Differenz

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

TimeDiff.m2
PROCEDURE CalcDays(today, future: Calendarday) : INTEGER;
   (* liefert die Zahl der Tage zwischen today und future,
      wobei future auch in der Vergangenheit liegen darf;
      in diesem Fall wird ein negativer Wert zurueckgeliefert
   *)
   VAR 
      md: ARRAY [1..12] OF Day;
      days: INTEGER;

   (* ... LeapYear und Days ... *)

BEGIN (* CalcDays *)
   md[1] := 31; md[2] := 28; md[3] := 31; md[4] := 30;
   md[5] := 31; md[6] := 30; md[7] := 31; md[8] := 31;
   md[9] := 30; md[10] := 31; md[11] := 30; md[12] := 31;

   days := (future.year - today.year) * 365;
   RETURN days + Days(future) - Days(today)
END CalcDays;

*Die Prozedur Days liefert für das jeweilige Datum die Zahl der Tage seit dem Beginn des jeweiligen Jahres plus die Zahl der Schalttage seit dem Jahre 0.
 
*Wenn zu der Differenz der beiden Werte von Days die Differenz der Jahre in Tagen (ohne Berücksichtigung von Schalttagen) hinzukommt, erhalten wir die gewünschte Differenz.
 

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