Feiertage berechnen und berücksichtigen - Teil 1

Wenn Sie wissen möchten, ob ein bestimmtes Datum ein Feiertag ist, beispielsweise um rechtlich relevante Fristen, die Laufzeit einer Sendung oder die Anzahl Werktage innerhalb eines Zeitraums zu berechnen, so ist das bei festen Feiertagen kein Problem. Anders sieht es bei variablen Feiertagen wie Rosenmontag, Ostern und Pfingsten aus. Wie sich diese berechnen lassen, erfahren Sie hier.

Die meisten variablen Feiertage lassen sich aus dem Termin von Ostern und Weihnachten berechnen. Für die Berechnung von Ostern gibt es eine Formel des Mathematikers Carl Friedrich Gauß, mit dem sich die Termine von Ostern bis in das Jahr 2499 berechnen lassen. Das reicht für die meisten Anwendungen aus.

Nachfolgend soll eine Klasse vorgestellt und erstellt werden, die Ihnen alle gesetzlichen und kirchlichen Feiertage berechnet und eine Methode zur Verfügung stellt, mit der Sie für ein bestimmtes Datum prüfen können, ob es sich dabei um einen Feiertag handelt und, wenn ja, um welchen.

Die Gaußsche Formel im Detail

Die Basis dieser Formel lautet Ostersonntag =D+E+22 und berechnet den Termin im Jahr, auf den Ostersonntag entfällt. Dabei berechnen sich D und E wie folgt:

D=((19*A)+M MOD 30)
E=((2*B)+(4*C)+(6 *D)+N) MOD 7

Die Variablen A, B und C berechnen sich wiederummwie folgt:

A= Jahr MOD 19
B= Jahr MOD 4
C= Jahr MOD 7

M und N stellen konstante Werte da, die abhängig vom Jahr feststehen. Sie berechnen sich wie Tabelle 1 zeigt.

Tabelle 1: Benötigte Werte für M und N.

Jahr

M

N

1582 – 1699

22

2

1700 – 1799

23

3

1800 – 1899

23

4

1900 – 2099

24

5

2100 – 2199

24

6

2200 – 2299

25

0

2300 – 2399

26

1

2400 – 2499

25

1

Haben Sie den Ostersonntag nach dieser Formel berechnet, müssen Sie noch ein paar weitergehende Ausnahmeregeln berücksichtigen.

  • Ist das Ergebnis größer als 31, fällt Ostern in den April. Der Tag wird dann wie folgt berechnet: Ostersonntag =D+E-9.

  • Ist das Ergebnis kleiner als 31, fällt Ostern in den März und der Tag ist der berechnete Wert

  • Ist das Ergebnis der 26. April, fällt Ostern auf den 19. April.

  • Ist das Ergebnis der 25. April und gleichzeitig A > 10 und D = 28, dann ist der Ostersonntag der 18. April.

Die Formel lässt sich daher verhältnismäßig einfach in eine Methode eines Klassenmoduls umsetzen.