Ermitteln von Feiertagen

Feiertage werden nicht nach dem Zufallsprinzip gesetzt, sondern es gibt eine feste Formel anhand welcher man sämtliche Feiertage berechnen kann. Hierbei muss man zwischen festen Feiertagen wie Neujahr und dem Tag der deutschen Einheit und den flexiblen unterscheiden. Zum Beispiel die, die sich an Ostersonntag ausrichten, welcher wiederrum errechnet werden kann. Dies ist mit der Gaußschen Osterformel möglich. Wenn man dies getan hat, werden von dem Ergebnisdatum aus nur noch Additionen sowie Subtraktionen durchgeführt. So lassen sich alle beweglichen Feiertage ermitteln. Wir nutzen zum errechnen vom Ostersonntag jedoch folgende Formel:

//year ist das aktuelle Jahr
int c = year / 100;
int n = year - 19 * (year / 19);
int k = (c - 17) / 25;
int i = c - c / 4 - ((c - k) / 3) + 19 * n + 15;
i = i - 30 * (i / 30);
i = i - (i / 28) * ((1 - (i / 28)) * (29 / (i + 1)) * ((21 - n) / 11));
int j = year + (year / 4) + i + 2 - c + (c / 4);
j = j - 7 * (j / 7);
int l = i - j;

int easterMonth = 3 + ((l + 40) / 44);
int easterDay = l + 28 - 31 * (easterMonth / 4);

Weiterlesen