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 FunctionPer 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. |