General

6.181 Verificare se la data corrente del computer cade o meno nel periodo dell'ora legale
  Alessandro Baraldi
Con la funzione di cui si riporta qui di seguito il codice VBA è possibile stabilire se la data corrente del computer cade nel periodo dell'ora legale o nel periodo dell'ora solare.
Viene effettuata la differenza tra l'ora locala e l'ora di GMT e se il risultato è uguale a 2 significa che siamo nele periodo in cui vige l'ora legale.
La funzione restituisce, a seconda del caso, la stringa "LEGALE" o la stringa "SOLARE".
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)

Private Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMilliseconds As Integer
    wAM As Integer
End Type

Public Function DisplayClock()
    Dim MyLTime As SYSTEMTIME
    Dim MySTime As SYSTEMTIME
    Dim dif     As Integer
    GetLocalTime MyLTime
    GetSystemTime MySTime
    If MyLTime.wHour > MySTime.wHour Then
      dif = MyLTime.wHour - MySTime.wHour
    Else
      dif = (24 + MyLTime.wHour) - MySTime.wHour
    End If
    If dif = 2 Then
       DisplayClock = "LEGALE"
    Else
       DisplayClock = "SOLARE"
    End If
End Function
Per verificare se una data qualsiasi appartiene o meno al periodo dell'ora legale, leggere la FAQ di Luciano (DOC) pubblicata nella Sezione General di questo sito intitolata 6.149 Verificare se una data cade o meno nel periodo dell'ora legale.


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.