Mailinglisten-Archive |
Weil ich schon etwas länger programmiere, als es PHP gibt, und das oft mit Sprachen, die in Punkto Datumsverarbeitung wenig oder nichts anbieten, habe ich mir angewöhnt, mit dem Julianischen Tag zu arbeiten. Das hat den Vorteil, dass man sich nur zwei Funktionen schreiben muss, nämlich Gregorianisches Datum -> Julianischer Tag und umgekehrt. (Der Julianische Tag ist eine Erfindung von Julius Scaliger (1540 - 1609), dem "Chefarchitekten" der Gregorianischen Kalendereform.) Die Julianische Epoche (= Tag 1) ist der 1. Januar 4713 v. Chr., das Ende des Zyklus der 22. Januar 3268 (gregorianisch). Da kann man auch gelassen dem Ende des Unix-Timestamps entgegensehen. Die Berechnung der Tage-Differenz zweier Datumsangaben besteht dann aus: 1) Berechnung des JT für beide Datumsangaben 2) Differenz der beiden JT bilden. Schaltjahre, Mondzyklen (Ostern!) etc. sind in dieser Periode bereits berücksichtigt. Der Wochentag ist einfach JT Modulo 7. Die entsprechenden Algorithmen findet man in "ACM Communications", Jahrgang 1963. Bei Bedarf kann ich sie für die jüngeren auch gerne hier posten ;-) Gruß Michael Detambel BFW Oberhausen
php::bar PHP Wiki - Listenarchive