Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.
Komentár: parameter timeZone

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
languageesl
themeConfluence
TIME %AddIntervalLocal(
   TIME in TimeA,
   REAL in TimeR,
   INT TEXT in timeZone :=  %GetTimeZone%GetCurrentTimeZone()
 )


Parametre


TimeAAbsolútny čas.
TimeRRelatívny čas.
timeZone
Vynútené časové pásmo
Názov časového pásma pre prevod na lokálny čas
. Zadáva sa ako posun časového pásma od UTC v zimnom čase v sekundách.
(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
languageesl
themeRDark
 ; =================================================================
;  Using time zone "Europe/Bratislava"
;  Daylight saving time was  Slovakia (country for this example)
 ;  Time zone is UTC+1.
 ;  There areobserved in year 2009, therefore time shifts occured.
;  Winter [B] time was 1 hour ahead of UTC, summer [A] andtime winterwas [B]2 timehours (withahead timeof shifts)UTC.
 ;  Summer time iswas 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
 
  ; UTC2009-10-24 23:30:00 24.10.2009 UTC / 2009-10-25 01:30:00 UTC+02
  _baseTime := %StrToTimeEx("2009-10-25 01:30:00 25.10.2009", "yyyy-mm-dd hh:mi:ss dd-mm-rrrr", "Europe/Bratislava")
 
  ; add 1 hour - result time 252009-10-200925 A2:30:00.000 UTC+02
  _addLocal1 := %AddIntervalLocal(_baseTime, 3600, "Europe/Bratislava")
  ; add 2 hour - result time 252009-10-200925 03:30:00.000 UTC+01
  _addLocal2 := %AddIntervalLocal(_baseTime, 7200, "Europe/Bratislava")
 
 END