Porovnávané verzie
porovnané s
Kľúč
- Tento riadok sa pridal
- Riadok je odstránený.
- Formátovanie sa zmenilo.
Funkcia %AddIntervalLocal
Funkcia
Funkcia pripočíta k absolútnemu času TimeA relatívny čas TimeR. Výsledkom je hodnota typu Absolútny čas.
Deklarácia
Blok kódu | ||||
---|---|---|---|---|
| ||||
TIME %AddIntervalLocal( TIME in TimeA, REAL in TimeR, TEXT in timeZone := %GetCurrentTimeZone() ) |
Parametre
TimeA | Absolútny čas. | ||||||
TimeR | Relatívny čas. | ||||||
timeZoneNá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 %AddIntervalLocal pripočíta relatívny čas k absolútnemu. Výsledok nebude ovplyvnený skutočnosťou, či v tomto intervale boli alebo neboli časové prechody. Napríklad pripočítaním 3 hodín k 1 hodine ráno bude vždy dávať výsledok 4 hodiny ráno.
Príklad
Blok kódu | ||||
---|---|---|---|---|
| ||||
; ================================================================= ; Using time zone "Europe/Bratislava" ; Daylight saving time was observed in year 2009, therefore time shifts occured. ; Winter [B] time was 1 hour ahead of UTC, summer [A] time was 2 hours ahead of UTC. ; Summer time was from 29th March 2009 to 24th October 2009. ; A3:00:00 is changed to B2:00:00 on Sunday (25th October 2009). ; ================================================================= BEGIN TIME _baseTime TIME _addLocal1 TIME _addLocal2 ; 2009-10-24 23:30:00 UTC / 2009-10-25 01:30:00 UTC+02 _baseTime := %StrToTimeEx("2009-10-25 01:30:00", "yyyy-mm-dd hh:mi:ss", "Europe/Bratislava") ; add 1 hour - result time 2009-10-25 A2:30:00.000 UTC+02 _addLocal1 := %AddIntervalLocal(_baseTime, 3600, "Europe/Bratislava") ; add 2 hour - result time 2009-10-25 03:30:00.000 UTC+01 _addLocal2 := %AddIntervalLocal(_baseTime, 7200, "Europe/Bratislava") END |