38 lines
1.3 KiB
QBasic
38 lines
1.3 KiB
QBasic
Attribute VB_Name = "modUtc"
|
|
Option Explicit
|
|
|
|
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
|
|
End Type
|
|
|
|
Private Type TIME_ZONE_INFORMATION
|
|
Bias As Long
|
|
StandardName(63) As Byte 'unicode (0-based)
|
|
StandardDate As SYSTEMTIME
|
|
StandardBias As Long
|
|
DaylightName(63) As Byte 'unicode (0-based)
|
|
DaylightDate As SYSTEMTIME
|
|
DaylightBias As Long
|
|
End Type
|
|
|
|
Private Declare Function GetTimeZoneInformation Lib "kernel32" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
|
|
Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
|
|
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
|
|
Private Declare Function SystemTimeToTzSpecificLocalTime Lib "kernel32" (lpTimeZoneInformation As TIME_ZONE_INFORMATION, lpUniversalTime As SYSTEMTIME, lpLocalTime As SYSTEMTIME) As Long
|
|
|
|
|
|
' Return current time as UTC
|
|
Public Function UTCTime() As Date
|
|
Dim t As SYSTEMTIME
|
|
GetSystemTime t
|
|
UTCTime = DateSerial(t.wYear, t.wMonth, t.wDay) + TimeSerial(t.wHour, t.wMinute, t.wSecond) + t.wMilliseconds / 86400000#
|
|
End Function
|
|
|