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)
 
   'Quelle: www.dbwiki.net oder www.dbwiki.de
 
   Dim dt As Date
 
   If Jahr < 0 Then Jahr = Year(Date)
   If Jahr >= 1980 Then
      dt = DateSerial(Jahr, 4, 1)
      Sommerzeit = DateAdd("d", -DatePart("w", dt, vbMonday), dt)
   Else
      Sommerzeit = Null
   End If
End Function
 
Public Function Winterzeit(Optional ByVal Jahr As Long = -1)
 
   'Quelle: www.dbwiki.net oder www.dbwiki.de
 
   Dim dt As Date
 
   If Jahr < 0 Then Jahr = Year(Date)
   If Jahr >= 1980 Then
      dt = DateSerial(Jahr, 11, 1)
      If Jahr <= 1995 Then dt = DateSerial(Jahr, 10, 1)
      Winterzeit = DateAdd("d", -DatePart("w", dt, vbMonday), dt)
   Else
      Winterzeit = Null
   End If
End Function

Aufruf

   Debug.Print Sommerzeit(1993)    'Ausgabe: 28.03.1993


Wiki hinweis.png

Anmerkung: 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:

http://www.paradox.ch/syndrome/syncheck/sommerzeit.htm


Wikilinks

Weblinks