Berechnung der Differenz III

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

TimeDiff.m2
PROCEDURE Days(day: Calendarday) : INTEGER;
   (* liefert die Anzahl der Tage seit Beginn des
      zugehoerigen Kalendarjahres plus die Anzahl
      der Schalttage seit dem Jahr 0, wobei
      Kalenderreformen ignoriert werden
   *)
   VAR
      days: INTEGER;
      i: Month;
BEGIN
   (* Anzahl der Schaltjahre ermitteln *)
   days := day.year DIV 4 - day.year DIV 100 +
           day.year DIV 400;

   (* Anzahl der Tage im aktuellen Jahr hinzuzaehlen *)
   INC(days, day.day);
   FOR i := 1 TO day.month - 1 DO 
      INC(days, md[i]);
   END;

   (* Fehlerkorrektur bei Schaltjahren notwendig, wenn wir
      im Januar oder Februar sind
   *)
   IF (day.month < 3) & LeapYear(day.year) THEN
      DEC(days);
   END;
   RETURN days
END Days;

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