Feiertage berechnen



  • Feiertage



  • Ostersonntag:

    int jahr;
    {
        int a = jahr % 19;
        int b = jahr / 100;
        int c = jahr % 100;
        int e = b % 4;
        int f = (b + 8) / 25;
        int g = (b - f + 1) / 3;
        int h = (19 * a + b - (b/4) - g + 15) % 30;
        int k = c % 4;
        int l = (32 + 2 * e + 2 * (c / 4) - h - k) % 7;
        int m = (a + 11 * h + 22 * l) / 451;
        int nMonth = (h + l - 7 * m + 114) / 31;
        int nDay = (h + l - 7 * m + 114) % 31 + 1;
    }
    

    Rest:

    1,1,jahr,   "Neujahr (18 Uhr)"
    6,1,jahr,   "Hl. Drei Könige"
    14,7,jahr,  "Sel. Bernhard"
    15,8,jahr,  "Mariä Himmelfahrt"
    1,11,jahr,  "Allerheiligen"
    8,12,jahr,  "Maria Empfängnis"
    24,12,jahr, "Heilig Abend"
    25,12,jahr, "1.Weihnachtsfeiertag"
    26,12,jahr, "2.Weihnachtsfeiertag"
    // von Ostern abhängige Feiertage
    Ostern-46,  "Aschermittwoch"
    Ostern-7,   "Palmsonntag"
    Ostern-3,   "Gründonnerstag"
    Ostern-2,   "Karfreitag"
    Ostern-1,   "Karsamstag"
    Ostern,     "Ostersonntag"
    Ostern+1,   "Ostermontag"
    Ostern+39,  "Christi Himmelfahrt"
    Ostern+49,  "Pfingstsonntag"
    Ostern+50,  "Pfingstmontag"
    Ostern+60,  "Fronleichnam"
    


  • @netter Mensch (wie gut, dass es noch welche gibt)

    Herzlichen Dank für die Erleuchtung. Ich hatte selber mal gegoogelt und folgende Seite gefunden: http://www.ptb.de/de/org/4/43/432/oste.htm

    Ciao...

    P.S. Was ist denn Sel. Bernhard für ein Feiertag und wo feiert man den?

    [ Dieser Beitrag wurde am 11.06.2003 um 15:05 Uhr von Kal El editiert. ]



  • Ich hatte mal ne Klasse dafür geschrieben.
    Vielleicht hab ich sie noch irgendwo...

    Devil



  • Hallo Leute,

    ich stehe vor dem Problem die ganzen Feiertage im Jahr zu berechnen. Habe nun auch schon diverse Formen der Osterformel gefunden. U.a. diese hier in eurem Forum.

    Nun meine Frage. Mir faellt es etwas schwer mich da hinein zu denken. Ich vermute mal, ich muss an einer Stelle nur die bestimmte Anzahl an Tage abzuziehen bzw dazu zu addieren um auf die anderen Feiertage zu kommen. Sehe ich das richtig so?
    Ich weiss nur nicht an welcher stelle bzw ob es auch so einfach ist 🙄

    Vielleicht hat ja jemand schon gelegentlich damit zu tun gehabt, dass er mir evtl weiterhelfen kann. 😕

    Ostersonntag:

    int jahr;
    {
        int a = jahr % 19;
        int b = jahr / 100;
        int c = jahr % 100;
        int e = b % 4;
        int f = (b + 8) / 25;
        int g = (b - f + 1) / 3;
        int h = (19 * a + b - (b/4) - g + 15) % 30;
        int k = c % 4;
        int l = (32 + 2 * e + 2 * (c / 4) - h - k) % 7;
        int m = (a + 11 * h + 22 * l) / 451;
        int nMonth = (h + l - 7 * m + 114) / 31;
        int nDay = (h + l - 7 * m + 114) % 31 + 1;
    }
    

    Rest:

    1,1,jahr,   "Neujahr (18 Uhr)"
    6,1,jahr,   "Hl. Drei Könige"
    14,7,jahr,  "Sel. Bernhard"
    15,8,jahr,  "Mariä Himmelfahrt"
    1,11,jahr,  "Allerheiligen"
    8,12,jahr,  "Maria Empfängnis"
    24,12,jahr, "Heilig Abend"
    25,12,jahr, "1.Weihnachtsfeiertag"
    26,12,jahr, "2.Weihnachtsfeiertag"
    // von Ostern abhängige Feiertage
    Ostern-46,  "Aschermittwoch"
    Ostern-7,   "Palmsonntag"
    Ostern-3,   "Gründonnerstag"
    Ostern-2,   "Karfreitag"
    Ostern-1,   "Karsamstag"
    Ostern,     "Ostersonntag"
    Ostern+1,   "Ostermontag"
    Ostern+39,  "Christi Himmelfahrt"
    Ostern+49,  "Pfingstsonntag"
    Ostern+50,  "Pfingstmontag"
    Ostern+60,  "Fronleichnam"
    

    Gruss Alex



  • Überleg' mal was

    Ostern-46,  "Aschermittwoch"
    

    aussagen soll!?!



  • ja schon klar, aber an welcher stelle binde ich die

    -46
    

    ein?! Ich weiss; es ist ja von prinzip her ein rein mathematisches problem, aber ich bekomm es einfach nicht hin 😞



  • man: mktime normalisiert Datumsangaben.



  • Der Ramadan richtet sich nach dem Mondkalender, das sollte man beachten.



  • netter Mensch schrieb:

    Ostersonntag:

    int jahr;
    {
        int a = jahr % 19;
        int b = jahr / 100;
        int c = jahr % 100;
        int e = b % 4;
        int f = (b + 8) / 25;
        int g = (b - f + 1) / 3;
        int h = (19 * a + b - (b/4) - g + 15) % 30;
        int k = c % 4;
        int l = (32 + 2 * e + 2 * (c / 4) - h - k) % 7;
        int m = (a + 11 * h + 22 * l) / 451;
        int nMonth = (h + l - 7 * m + 114) / 31;
        int nDay = (h + l - 7 * m + 114) % 31 + 1;
    }
    

    Rest:

    1,1,jahr,   "Neujahr (18 Uhr)"
    6,1,jahr,   "Hl. Drei Könige"
    14,7,jahr,  "Sel. Bernhard"
    15,8,jahr,  "Mariä Himmelfahrt"
    1,11,jahr,  "Allerheiligen"
    8,12,jahr,  "Maria Empfängnis"
    24,12,jahr, "Heilig Abend"
    25,12,jahr, "1.Weihnachtsfeiertag"
    26,12,jahr, "2.Weihnachtsfeiertag"
    // von Ostern abhängige Feiertage
    Ostern-46,  "Aschermittwoch"
    Ostern-7,   "Palmsonntag"
    Ostern-3,   "Gründonnerstag"
    Ostern-2,   "Karfreitag"
    Ostern-1,   "Karsamstag"
    Ostern,     "Ostersonntag"
    Ostern+1,   "Ostermontag"
    Ostern+39,  "Christi Himmelfahrt"
    Ostern+49,  "Pfingstsonntag"
    Ostern+50,  "Pfingstmontag"
    Ostern+60,  "Fronleichnam"
    

    Du hast den Tag der Deutschen Einheit vergessen.

    @TS
    Soll das Programm auch für die US Amerikaner funktionieren, dann muss auch der 4. Juli berücksichtigt werden.


Anmelden zum Antworten