VBA Tipp: Umstellungstermin für Sommerzeit

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

Ich möchte den Umstellungstermin von Winterzeit auf Sommerzeit (bzw. umgekehrt) ermitteln.

Lösung

Das leisten die folgenden Funktionen:

Public Function Sommerzeit(Optional ByVal Jahr As Long = -1)
Dim D  As Date
  If Jahr < 0 Then Jahr = Year(Date)
  Sommerzeit = Null
  If Jahr >= 1980 Then
    D = DateSerial(Jahr, 4, 1)
    Sommerzeit = DateAdd("d", -DatePart("w", D, vbMonday), D)
  End If
End Function
 
Public Function Winterzeit(Optional ByVal Jahr As Long = -1)
Dim D As Date
  Winterzeit = Null
  If Jahr < 0 Then Jahr = Year(Date)
  If Jahr >= 1980 Then
    D = DateSerial(Jahr, 11, 1)
    If Jahr <= 1995 Then D = DateSerial(Jahr, 10, 1)
    Winterzeit = DateAdd("d", -DatePart("w", D, vbMonday), D)
  End If
End Function

Aufruf

Debug.Print Sommerzeit(1993)
28.03.1993

Anmerkungen

Hierbei wurden die (teilweise recht komplexen und regional unterschiedlichen) Sommerzeitregelungen vor 1950 nicht berücksichtigt. Wen es interessiert, der findet weiterführende Informationen zum Thema hier: