VBA Tipp: Weitere Datumsberechnungen (Buss- und Bettag)

Aus DBWiki
Wechseln zu: Navigation, Suche

Problem

Die Osterformel liefert mir nicht alle Feiertage, so fehlt mir z.B. der Buß- und Bettag.

Lösung

Hier noch ein paar weitere Feiertagsfunktionen:

Public Function BussUndBettag(ByVal Jahr As Long) As Date
 
   'Buss- und Bettag:
   'am Mittwoch vor dem letzten Sonntag im Kirchenjahr
 
   Dim t As Long
   Dim d As Date
 
   For t = 16 To 22
      d = DateSerial(Jahr, 11, t)
      If WeekDay(d) = vbWednesday Then
         BussUndBettag = d
         Exit Function
      End If
   Next
End Function
 
 
Public Function Knabenschiessen(ByVal Jahr As Long) As Date
 
   'Ein Festtag in Zürich:
   'am 2. Montag nach einem kompletten Wochenende im September
 
   Dim d As Date
   Dim i As Long
 
   For i = 9 To 15
      d = DateSerial(Jahr, 9, i)
      If WeekDay(d) = vbMonday Then
         Knabenschiessen = d
         Exit For
      End If
   Next
End Function
 
 
Public Function BussUndBettagSchweiz(ByVal Jahr As Long) As Date
 
   'In der Schweiz:
   'am 3. Sonntag im September
 
   Dim d As Date
   Dim i As Long
 
   For i = 15 To 21
      d = DateSerial(Jahr, 9, i)
      If WeekDay(d) = vbSunday Then
         BussUndBettagSchweiz = d
         Exit For
      End If
   Next
End Function