Difference between revisions of "Unit Timezone"

From Ultibo.org
Jump to: navigation, search
 
(9 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
'''Ultibo Timezone interface unit'''
+
'''Ultibo Timezone Interface unit'''
 
+
''To be documented''
+
  
 
=== Constants ===
 
=== Constants ===
Line 34: Line 32:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''Timezone signature constants''' <code> TIMEZONE_SIGNATURE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Timezone signature''' <code> TIMEZONE_SIGNATURE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 48: Line 46:
 
----
 
----
  
''To be documented''
+
 
 +
'''System time'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>LPSYSTEMTIME = SysUtils.LPSYSTEMTIME;</code>
 +
 
 +
<code>SYSTEMTIME = SysUtils.SYSTEMTIME;</code>
 +
 
 +
<code>TSystemTime = SysUtils.TSystemTime;</code>
 +
 
 +
<code>PSystemTime = SysUtils.PSystemTime;</code>
 +
 
 +
<code>_SYSTEMTIME = SysUtils.SYSTEMTIME;</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>wYear:Word;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>wMonth:Word;</code>
 +
| &nbsp;
 +
|-
 +
| <code>wDayOfWeek:Word;</code>
 +
| &nbsp;
 +
|-
 +
| <code>wDay:Word;</code>
 +
| &nbsp;
 +
|-
 +
| <code>wHour:Word;</code>
 +
| &nbsp;
 +
|-
 +
| <code>wMinute:Word;</code>
 +
| &nbsp;
 +
|-
 +
| <code>wSecond:Word;</code>
 +
| &nbsp;
 +
|-
 +
| <code>wMilliseconds:Word;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Timezone information'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TIME_ZONE_INFORMATION = _TIME_ZONE_INFORMATION;</code>
 +
 
 +
<code>LPTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION;</code>
 +
 
 +
<code>TTimeZoneInformation = TIME_ZONE_INFORMATION;</code>
 +
 
 +
<code>PTimeZoneInformation = PTIME_ZONE_INFORMATION;</code>
 +
 
 +
<code>PTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION;</code>
 +
 
 +
<code>_TIME_ZONE_INFORMATION = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Bias:LONG;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>StandardName:array [0..31] of WCHAR;</code>
 +
| &nbsp;
 +
|-
 +
| <code>StandardDate:SYSTEMTIME;</code>
 +
| &nbsp;
 +
|-
 +
| <code>StandardBias:LONG;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DaylightName:array [0..31] of WCHAR;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DaylightDate:SYSTEMTIME;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DaylightBias:LONG;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Timezone data'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PTimezoneData = ^TTimezoneData;</code>
 +
 
 +
<code>TTimezoneData = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Name:String[32];</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Description:String[64];</code>
 +
| &nbsp;
 +
|-
 +
| <code>Bias:LongInt;</code>
 +
| &nbsp;
 +
|-
 +
| <code>StandardName:String[32];</code>
 +
| &nbsp;
 +
|-
 +
| <code>StandardBias:LongInt;</code>
 +
| &nbsp;
 +
|-
 +
| <code>StandardStart:SYSTEMTIME;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DaylightName:String[32];</code>
 +
| &nbsp;
 +
|-
 +
| <code>DaylightBias:LongInt;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DaylightStart:SYSTEMTIME;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Timezone enumeration callback'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>TTimezoneEnumerate = function(Timezone:PTimezoneEntry; Data:Pointer):LongWord;</code>
 +
| style="width: 40%;"|
 +
|-
 +
|}
 +
 
 +
'''Timezone entry'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PTimezoneEntry = ^TTimezoneEntry;</code>
 +
 
 +
<code>TTimezoneEntry = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Timezone Properties''
 +
|-
 +
| <code>Signature:LongWord;</code>
 +
| Signature for entry validation
 +
|-
 +
| <code>Name:array[0..TIMEZONE_NAME_LENGTH - 1] of Char;</code>
 +
| Timezone name
 +
|-
 +
| <code>Description:array[0..TIMEZONE_DESC_LENGTH - 1] of Char;</code>
 +
| Timezone description
 +
|-
 +
| <code>Bias:LongInt;</code>
 +
| &nbsp;
 +
|-
 +
| <code>StandardName:array[0..TIMEZONE_NAME_LENGTH - 1] of Char;</code>
 +
| Standard name
 +
|-
 +
| <code>StandardBias:LongInt;</code>
 +
| &nbsp;
 +
|-
 +
| <code>StandardStart:SYSTEMTIME;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DaylightName:array[0..TIMEZONE_NAME_LENGTH - 1] of Char;</code>
 +
| Daylight name
 +
|-
 +
| <code>DaylightBias:LongInt;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DaylightStart:SYSTEMTIME;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''Internal Properties''
 +
|-
 +
| <code>Prev:PTimezoneEntry;</code>
 +
| Previous entry in Timezone table
 +
|-
 +
| <code>Next:PTimezoneEntry;</code>
 +
| Next entry in Timezone table
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===
Line 66: Line 247:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 81: Line 262:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 93: Line 274:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 105: Line 286:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 117: Line 298:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 129: Line 310:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 136: Line 317:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetState(Timezone:PTimezoneEntry):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetState(Timezone:PTimezoneEntry):LongWord; inline;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the state of the supplied Timezone at the current date and time</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Timezone
| None documented
+
| The timezone entry to get the state for
 +
|-
 +
! Return
 +
| The TIME_ZONE_ID_* constant representing the standard / daylight state of the timezone
 
|-
 
|-
 
|}
 
|}
Line 148: Line 332:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetActiveBias(Timezone:PTimezoneEntry):LongInt;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetStateEx(Timezone:PTimezoneEntry; const DateTime:TDateTime):LongWord;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the state of the supplied Timezone at the specified date and time</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Timezone
| None documented
+
| The timezone entry to get the state for
 +
|-
 +
! DateTime
 +
| The date and time to get the state of the timezone at
 +
|-
 +
! Return
 +
| The TIME_ZONE_ID_* constant representing the standard / daylight state of the timezone
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetActiveBias(Timezone:PTimezoneEntry):LongInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the bias (offset between UTC and Local) of the supplied Timezone at the current date and time</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Timezone
 +
| The timezone entry to get the bias for
 +
|-
 +
! Return
 +
| The bias in minutes offset between UTC and Local including any daylight bias if active
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetActiveBiasEx(Timezone:PTimezoneEntry; const DateTime:TDateTime):LongInt;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the bias (offset between UTC and Local) of the supplied Timezone at the specified date and time</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Timezone
 +
| The timezone entry to get the bias for
 +
|-
 +
! DateTime
 +
| The date and time to get the bias of the timezone at
 +
|-
 +
! Return
 +
| The bias in minutes offset between UTC and Local
 
|-
 
|-
 
|}
 
|}
Line 165: Line 388:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 177: Line 400:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 189: Line 412:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 196: Line 419:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetStandardStart(Timezone:PTimezoneEntry):TSystemTime;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetStandardStart(Timezone:PTimezoneEntry):SYSTEMTIME;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 213: Line 436:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 225: Line 448:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 237: Line 460:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 244: Line 467:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetDaylightStart(Timezone:PTimezoneEntry):TSystemTime;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetDaylightStart(Timezone:PTimezoneEntry):SYSTEMTIME;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 261: Line 484:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function TimezoneFindByStandard(const StandardName:String):PTimezoneEntry;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function TimezoneFindByDaylight(const DaylightName:String):PTimezoneEntry;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 273: Line 520:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 283: Line 530:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetCount:LongWord; inline;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetCount:LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current timezone count</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current timezone count</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 295: Line 542:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetDefault:PTimezoneEntry; inline;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function TimezoneGetDefault:PTimezoneEntry;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current default timezone</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current default timezone</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 312: Line 559:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 324: Line 571:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 336: Line 583:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 343: Line 590:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function TimezoneStartToDateTime(const AStart:TSystemTime; AYear:Word):TDateTime;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function TimezoneStartToDateTime(const AStart:SYSTEMTIME; AYear:Word):TDateTime;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Calculate the start date and time from the start date of a timezone</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Calculate the start date and time from the start date of a timezone</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 355: Line 602:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function TimezoneStartToDescription(const AStart:TSystemTime):String;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function TimezoneStartToDescription(const AStart:SYSTEMTIME):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the description of the start date of a timezone</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the description of the start date of a timezone</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 372: Line 619:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-

Latest revision as of 04:31, 12 September 2023

Return to Unit Reference


Description


Ultibo Timezone Interface unit

Constants



Timezone specific constants TIME_ZONE_*
TIME_ZONE_ID_UNKNOWN = 0;  
TIME_ZONE_ID_STANDARD = 1;  
TIME_ZONE_ID_DAYLIGHT = 2;  
TIME_ZONE_ID_INVALID = DWORD($FFFFFFFF);  


Timezone signature TIMEZONE_SIGNATURE_*
TIMEZONE_SIGNATURE = $ED9A1BC3;  


Type definitions



System time

LPSYSTEMTIME = SysUtils.LPSYSTEMTIME;

SYSTEMTIME = SysUtils.SYSTEMTIME;

TSystemTime = SysUtils.TSystemTime;

PSystemTime = SysUtils.PSystemTime;

_SYSTEMTIME = SysUtils.SYSTEMTIME;

wYear:Word;  
wMonth:Word;  
wDayOfWeek:Word;  
wDay:Word;  
wHour:Word;  
wMinute:Word;  
wSecond:Word;  
wMilliseconds:Word;  

Timezone information

TIME_ZONE_INFORMATION = _TIME_ZONE_INFORMATION;

LPTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION;

TTimeZoneInformation = TIME_ZONE_INFORMATION;

PTimeZoneInformation = PTIME_ZONE_INFORMATION;

PTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION;

_TIME_ZONE_INFORMATION = record

Bias:LONG;  
StandardName:array [0..31] of WCHAR;  
StandardDate:SYSTEMTIME;  
StandardBias:LONG;  
DaylightName:array [0..31] of WCHAR;  
DaylightDate:SYSTEMTIME;  
DaylightBias:LONG;  

Timezone data

PTimezoneData = ^TTimezoneData;

TTimezoneData = record

Name:String[32];  
Description:String[64];  
Bias:LongInt;  
StandardName:String[32];  
StandardBias:LongInt;  
StandardStart:SYSTEMTIME;  
DaylightName:String[32];  
DaylightBias:LongInt;  
DaylightStart:SYSTEMTIME;  

Timezone enumeration callback

TTimezoneEnumerate = function(Timezone:PTimezoneEntry; Data:Pointer):LongWord;

Timezone entry

PTimezoneEntry = ^TTimezoneEntry;

TTimezoneEntry = record

Timezone Properties
Signature:LongWord; Signature for entry validation
Name:array[0..TIMEZONE_NAME_LENGTH - 1] of Char; Timezone name
Description:array[0..TIMEZONE_DESC_LENGTH - 1] of Char; Timezone description
Bias:LongInt;  
StandardName:array[0..TIMEZONE_NAME_LENGTH - 1] of Char; Standard name
StandardBias:LongInt;  
StandardStart:SYSTEMTIME;  
DaylightName:array[0..TIMEZONE_NAME_LENGTH - 1] of Char; Daylight name
DaylightBias:LongInt;  
DaylightStart:SYSTEMTIME;  
Internal Properties
Prev:PTimezoneEntry; Previous entry in Timezone table
Next:PTimezoneEntry; Next entry in Timezone table


Public variables


None defined

Function declarations


Initialization functions

procedure TimezoneInit;
Description: To be documented
Note None documented


Timezone functions

function TimezoneAdd(Data:PTimezoneData; Default:Boolean):LongWord;
Description: Add a Timezone from a timezone data block and to the Timezone table
Note None documented


function TimezoneDelete(Timezone:PTimezoneEntry):LongWord;
Description: To be documented
Note None documented


function TimezoneGetName(Timezone:PTimezoneEntry):String;
Description: To be documented
Note None documented


function TimezoneGetDescription(Timezone:PTimezoneEntry):String;
Description: To be documented
Note None documented


function TimezoneGetBias(Timezone:PTimezoneEntry):LongInt;
Description: To be documented
Note None documented


function TimezoneGetState(Timezone:PTimezoneEntry):LongWord; inline;
Description: Get the state of the supplied Timezone at the current date and time
Timezone The timezone entry to get the state for
Return The TIME_ZONE_ID_* constant representing the standard / daylight state of the timezone


function TimezoneGetStateEx(Timezone:PTimezoneEntry; const DateTime:TDateTime):LongWord;
Description: Get the state of the supplied Timezone at the specified date and time
Timezone The timezone entry to get the state for
DateTime The date and time to get the state of the timezone at
Return The TIME_ZONE_ID_* constant representing the standard / daylight state of the timezone


function TimezoneGetActiveBias(Timezone:PTimezoneEntry):LongInt; inline;
Description: Get the bias (offset between UTC and Local) of the supplied Timezone at the current date and time
Timezone The timezone entry to get the bias for
Return The bias in minutes offset between UTC and Local including any daylight bias if active


function TimezoneGetActiveBiasEx(Timezone:PTimezoneEntry; const DateTime:TDateTime):LongInt;
Description: Get the bias (offset between UTC and Local) of the supplied Timezone at the specified date and time
Timezone The timezone entry to get the bias for
DateTime The date and time to get the bias of the timezone at
Return The bias in minutes offset between UTC and Local


function TimezoneGetStandardName(Timezone:PTimezoneEntry):String;
Description: To be documented
Note None documented


function TimezoneGetStandardBias(Timezone:PTimezoneEntry):LongInt;
Description: To be documented
Note None documented


function TimezoneGetStandardDate(Timezone:PTimezoneEntry; Next:Boolean):TDateTime;
Description: To be documented
Note None documented


function TimezoneGetStandardStart(Timezone:PTimezoneEntry):SYSTEMTIME;
Description: To be documented
Note None documented


function TimezoneGetDaylightName(Timezone:PTimezoneEntry):String;
Description: To be documented
Note None documented


function TimezoneGetDaylightBias(Timezone:PTimezoneEntry):LongInt;
Description: To be documented
Note None documented


function TimezoneGetDaylightDate(Timezone:PTimezoneEntry; Next:Boolean):TDateTime;
Description: To be documented
Note None documented


function TimezoneGetDaylightStart(Timezone:PTimezoneEntry):SYSTEMTIME;
Description: To be documented
Note None documented


function TimezoneFind(const Name:String):PTimezoneEntry;
Description: To be documented
Note None documented


function TimezoneFindByStandard(const StandardName:String):PTimezoneEntry;
Description: To be documented
Note None documented


function TimezoneFindByDaylight(const DaylightName:String):PTimezoneEntry;
Description: To be documented
Note None documented


function TimezoneEnumerate(Callback:TTimezoneEnumerate; Data:Pointer):LongWord;
Description: To be documented
Note None documented


Timezone helper functions

function TimezoneGetCount:LongWord;
Description: Get the current timezone count
Note None documented


function TimezoneGetDefault:PTimezoneEntry;
Description: Get the current default timezone
Note None documented


function TimezoneSetDefault(Timezone:PTimezoneEntry):LongWord;
Description: Set the current default timezone
Note None documented


function TimezoneCheck(Timezone:PTimezoneEntry):PTimezoneEntry;
Description: Check if the supplied Timezone is in the Timezone table
Note None documented


function TimezoneUpdateOffset:LongWord;
Description: To be documented
Note None documented


function TimezoneStartToDateTime(const AStart:SYSTEMTIME; AYear:Word):TDateTime;
Description: Calculate the start date and time from the start date of a timezone
Note None documented


function TimezoneStartToDescription(const AStart:SYSTEMTIME):String;
Description: Get the description of the start date of a timezone
Note None documented


function TimezoneNameReplaceChar(const AName:String; AChar,AReplace:Char):String;
Description: Same as ReplaceChar in UltiboUtils, reproduced here to avoid including extra units
Note None documented


Return to Unit Reference