Porovnávané verzie
porovnané s
Kľúč
- Tento riadok sa pridal
- Riadok je odstránený.
- Formátovanie sa zmenilo.
Komentár:
parameter timeZone
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
Blok kódu | ||||
---|---|---|---|---|
| ||||
REAL %SubTimesLocal( TIME in TimeA, TIME in TimeB, INT TEXT in timeZone := %GetTimeZone%GetCurrentTimeZone() ) |
Parametre
TimeA | Absolútny čas. |
TimeB | Absolútny čas. |
timeZone |
Názov časového pásma pre prevod na lokálny čas |
(napr. "Europe/London") alebo definícia fixného posunu od UTC vo formáte "(+|-)hh[:mi[:ss]]", kde hh určuje počet hodín, mi počet minút a ss počet sekúnd. Znamienko posunu a počet hodín sú povinné časti definície posunu, počet minút a sekúnd sú volitelné a predvolene sú 0 (napr. "+02:30" definuje posun 2 hodiny a 30 minút od UTC). Prázdny text je interpretovaný rovnako ako volanie funkcie %GetCurrentTimeZone. Z historických dôvodov je akceptovaný aj celočíselný parameter, ktorý je interpretovaný nasledovne: 0 - zóna "Europe/London", 3600 - zóna "Europe/Bratislava", 7200 - zóna "Europe/Kiev", 21600 - zóna "Asia/Almaty". Použitie celočíselného parametra sa neodporúča a generuje upozornenie do logovacieho súboru! |
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
Blok kódu | ||||
---|---|---|---|---|
| ||||
; ================================================================= ; 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 |