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, 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 T
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, 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 I
End Function
 
 
Public Function BussUndBettagSchweiz(ByVal Jahr As Long) As Date
'
' In der Schweiz:
' am 3. Sonntag im September
'
Dim D As Date, 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 I
End Function