Funkcia %SubTimesLocal


Funkcia
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