Funkcia odpočíta od absolútneho času TimeA
absolútny čas TimeB. Výsledkom je hodnota typu Relatívny čas.
Deklarácia
REAL %SubTimesLocal(
TIME in TimeA,
TIME in TimeB,
INT in timeZone := %GetTimeZone()
)
Parametre
TimeA
Absolútny čas.
TimeB
Absolútny čas.
timeZone
Vynútené časové pásmo pre prevod na lokálny čas. Zadáva sa ako
posun časového pásma od UTC v zimnom čase v sekundách.
Popis
Funkcia %SubTimesLocal odčítava od seba dva absolútne časy. Výsledok nebude
ovplyvnený skutočnosťou, či v tomto intervale boli alebo neboli časové prechody. Napríklad rozdiel medzi 4:00 a 1:00 ráno je vždy 3 hodiny.
Príklad
; =================================================================
; Slovakia (country for this example)
; Time zone is UTC+1.
; There are summer [A] and winter [B] time (with time shifts).
; Summer time is from 29th March 2009 to 24th October 2009.
; A3:00:00 is changed to B2:00:00 on Sunday (25th October 2009).
; =================================================================
BEGIN
TIME _timeA
TIME _timeB
TIME _baseTime
REAL _subLocal1
REAL _subLocal2
; UTC 00:30:00 25.10.2009
_timeA := %StrToTimeEx("A2:30:00 25.10.2009", "hh:mi:ss dd-mm-rrrr")
; UTC 01:30:00 25.10.2009
_timeB := %StrToTimeEx("B2:30:00 25.10.2009", "hh:mi:ss dd-mm-rrrr")
; UTC 23:30:00 24.10.2009
_baseTime := %StrToTimeEx("01:30:00 25.10.2009", "hh:mi:ss dd-mm-rrrr")
; difference 1 hour(s) (3600 seconds)
_subLocal1 := %SubTimesLocal(_timeA, _baseTime)
; difference 1 hour(s) (3600 seconds)
_subLocal2 := %SubTimesLocal(_timeB, _baseTime)
END