` UTC and Time server (Richard Rose ) - Icetips Article
Icetips - Templates, Tools & Utilities for Clarion Developers

Templates, Tools and Utilities
for Clarion Developers

Icetips Article

Back to article list   Search Articles     Add Comment     Printer friendly     Direct link  

Par2: UTC and Time server
2010-04-14 -- Richard Rose
 
SYSTEMTIME GROUP,TYPE !System time struct wYear ushort wMonth ushort wDayOfWeek ushort wDay ushort wHour ushort wMinute ushort wSecond ushort wMilliseconds ushort END TIME_ZONE_INFORMATION GROUP Bias LONG StandardName byte,dim(64) !will clear to 0's StandardDate LIKE(systemTIME) StandardBias LONG DaylightName byte,dim(64) DaylightDate LIKE(SYSTEMTIME) DaylightBias LONG END TZ_Info Long StandardBias Long DaylightBias Long Bias Long TZ_Info=GetTimeZoneInformation(Address(TIME_ZONE_INFORMATION)) !Clear(StandardBias) !Hours from GMT !Clear(DaylightBias) !Minutes Secs Hundredths DaylightBias = ((0 - TIME_ZONE_INFORMATION.DaylightBias) * 60 * 100) StandardBias = ((0 - TIME_ZONE_INFORMATION.StandardBias) * 60 * 100) Bias = ((0 - TIME_ZONE_INFORMATION.Bias) * 60 * 100) !Message(Format(Daylightbias,@t7)) !Message(Format(Standardbias,@t7)) !Message(Format(bias,@t7)) If TZ_Info = 2 !daylight MachineDetails.Property = 'Timezone Daylight Saving' MachineDetails.Value = 'On' Add(MachineDetails) Elsif tz_Info = 1 !std MachineDetails.Property = 'Timezone Daylight Saving' MachineDetails.Value = 'Off' Add(MachineDetails) Else !No Daylight saving MachineDetails.Property = 'Timezone Daylight Saving' MachineDetails.Value = 'Daylight Saving Not Used In This Region' Add(MachineDetails) End MachineDetails.Property = 'Timezone Standard Bias' !MachineDetails.Value = '(GMT ' & Format(bias,@t1) &')' IF StandardBias > 0 MachineDetails.Value = '(GMT +' & Format(Standardbias+1,@t1) &' Hrs)' ElsIf StandardBias < 0 MachineDetails.Value = '(GMT -' & Format(Standardbias-1,@t1) &' Hrs)' Else MachineDetails.Value = '(GMT/UTC)' END Add(MachineDetails) MachineDetails.Property = 'Timezone Daylight Saving Bias' IF DaylightBias > 0 !Greater than GMT/UTC MachineDetails.Value = '(GMT +' & Format(DaylightBias+1,@t1) &' Hrs)' ElsIf DaylightBias < 0 !Less than GMT/UTC MachineDetails.Value = '(GMT -' & Format(DaylightBias-1,@t1) &' Hrs)' Else MachineDetails.Value = '(GMT/UTC)' END Add(MachineDetails) MachineDetails.Property = 'Timezone Bias' IF Bias > 0 !Greater than GMT/UTC MachineDetails.Value = '(GMT +' & Format(Bias+1,@t1) &' Hrs)' ElsIf Bias < 0 !Less than GMT/UTC MachineDetails.Value = '(GMT -' & Format(Bias-1,@t1) &' Hrs)' Else MachineDetails.Value = '(GMT/UTC)' END Add(MachineDetails) MachineDetails.Property = 'Timezone Region' MachineDetails.Value = GetReg(REG_CURRENT_USER,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones','TimeZoneKeyName') Add(MachineDetails) Larry Sand adds: You can use these relationships too: GetSystemTime(systemtime) !this is current date and time in UTC SystemTimeToFileTime(SystemTime, FileTime) !convert to filetime FileTimeToLocalFileTime(FileTime, LocalFileTime) !Now get the local filetime FileTimeToSystemTime(LocalFileTime, LocalSystemTime) The filetimes are hard to work with, that's why it's converted back to a system time structure at the end. The systemtime structure is easy to convert back to clarion date and times with Date(), Deformat(), and Format(). ClarionStdDate = Date(LocalSystemTime.wMonth, | LocalSystemTime.wDay, | LocalSystemTime.wYear) ClarionStdTime = Deformat(Format(LocalSystemTime.wHour, @n02) & | Format(LocalSystemTime.wMinute, @n02) &| Format(LocalSystemTime.wSecond, @n02), @T5)


Today is November 21, 2024, 7:38 am
This article has been viewed 35241 times.



Back to article list   Search Articles   Add Comment   Printer friendly

Login

User Name:

Password: