Berechnen wann die Feiertage in den Folgejahren sind?

2 Antworten

Es gibt die Funktion "WOCHENTAG" diese verlangt das Datum als Input und gibt dann eine Ziffer zurück, die dem Wochentag entspricht.
Die Ziffer kann man in z.B. "Mo", "Die",... mit INDEX zuweisen lassen.
Ostern berechnen ist etwas aufwendiger aber auch gelöst.
====

Bild zum Beitrag

Man muss den Ostersonntag finden. Die anderen Feiertage ergeben sich per Tage vor oder zurück.
Public Function ostern(yr As Integer) As Date
   Dim d As Integer
   d = (((255 - 11 * (yr Mod 19)) - 21) Mod 30) + 21
   ostern = DateTime.DateSerial(yr, 3, 1) + d + (d > 48) + 6 - _
    ((yr + yr \ 4 + d + (d > 48) + 1) Mod 7)
End Function


Public Function ostersonntag(yr As Integer) As Date
    Dim intjahr As Date
    Dim a As Integer
    Dim b As Integer
    Dim c As Integer
    Dim d As Integer
    Dim e As Integer
    Dim M As Integer
    Dim N As Integer
    Dim ostern As Integer
    intjahr = yr
    a = intjahr Mod 19
    b = intjahr Mod 4
    c = intjahr Mod 7
    M = 24
    N = 5
    d = (19 * a + M) Mod 30
    e = (2 * b + 4 * c + 6 * d + N) Mod 7
    If d + e = 35 Then
        ostern = 50
        ElseIf d = 28 And e = 6 And ((11 * M + 11) Mod 30) < 19 Then
        ostern = 49
    Else
        ostern = 22 + d + e
    End If
    ostersonntag = DateTime.DateSerial(intjahr, 3, ostern)
    
End Function   
 - (OpenOffice, Tabellenkalkulation)
Bsp. Tag der deutschen Einheit war am Donnerstag 02.Oktober2023 ?

Öhm ... nein. :)

an welchen Tagen, die Feiertage in den Folge sind ?

Ob Office das schon out-of-the-box kann, weiß ich nicht ... aber wenn du das selber berechnen willst, wird es kompliziert. Es gibt verschiedene Regeln für die verschiedenen Feiertage. Am einfachsten sind feste Feiertage: Weihnachten ist immer am 25./26. Dezember. Tag der Deutschen Einheit ist immer am 3. Oktober. Usw.

Aber z.B. für Ostern gilt "Osterdatum ist der erste Sonntag nach dem ersten Vollmond im Frühling." Aber wann ist Vollmond, wann ist Frühling? Kompliziert ...

Wenn du den Wochentag eines Datums ermitteln willst, musst du dann noch die Anzahl Tage im Jahr berücksichtigen (--> Schaltjahre). Das ist dann nicht mehr ganz so kompliziert (Schaltjahr alle 4 Jahre, außer bei Jahren, die durch 100 teilbar sind .... aber dann doch wieder, wenn die Jahreszahl durch 1000 teilbar ist (Jahr 2000 war ein Schaltjahr!)