silvio79ff Geschrieben 15. Oktober 2002 Geschrieben 15. Oktober 2002 Hallo, ich brauche ein Programm zur Berechnung der Feiertage für ein x belibiges Jahr. Man kann die Tage wohl irgendwie von Ostern ausgehend errechnen. Kennt jemand die Berechnung oder hat den fertigen Quelltext? Ich hoffe es kann mir jemand weiterhelfen Danke Silvio Zitieren
Jaraz Geschrieben 15. Oktober 2002 Geschrieben 15. Oktober 2002 Hallo, mit folgender Funktion kannst du den Offset des Ostersonntags ab dem 22 März in Tagen berechnen. Den Rest musst du selber machen, da das Firmeneigentum ist. Diese Funktion habe ich 1:1 von einer PHP FAQ Webseite kopiert. /** * Funktion offset: * <p>Berechnung des Offsets von beweglichen Feiertagen, * die von Ostern abhängen. Funktionstüchtigkeit * nur bis zum Jahr 8202 ! * Ergebnis Beispiel: * <br>Ostersonntag: Tage ab dem 22. März * @param j * @return int offset */ static int offset (int j) { // Ergebnisbereich: 0..34 int a = j%19; // Position im Mentonischen Zyklus int b = j%4; int c = j%7; int m = (8*(j/100) + 13)/25 - 2; int s = j/100 - j/400 - 2; int mm = (15 + s - m)%30; int n = (6 + s)%7; int d = (mm + 19*a)%30; int dd = (d == 29) ? 28 : (d == 28 && a >= 11) ? 27 : d; return dd + ((2*b + 4*c + 6*dd + n)%7); } Gruß Jaraz Zitieren
kingofbrain Geschrieben 16. Oktober 2002 Geschrieben 16. Oktober 2002 Morgen, wir haben das mal programmiert, der Code ist aber zuhause. Wenn Du willst, dann schicke ich Dir das ganze heute abend zu. Brauch aber Deine email-Adresse (per PM). Oder Du liest Dich in die Berechnung des Ostersonntags ein (da gibt es einen Algorithnus, der sich nach dem Mond richtet. Alle anderen Feiertage kann man anhand dieses Datums bzw. anhand ihres eigenen Datums (24.12.) berechnen. Dann lernst du noch was dabei. Mein Code arbeitet mit diesem Algorithmus. k.o.b Zitieren
silvio79ff Geschrieben 16. Oktober 2002 Autor Geschrieben 16. Oktober 2002 Hi, der Quelltext genügt mir. Den Rest bekomme ich allein hin. Danke Jaraz Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.