Hodnoty typu time!
představují časový údaj, specifikovaný v hodinách, minutách a vteřinách. Mohou být interpretovány jako odstup od půlnoci v kontextu datumu nebo jako absolutní čas dne.
Datový typ time!
je člen těchto typesetů: immediate!
, scalar!
Hodnoty typu time!
lze vytvořit s použitím literálové syntaxe nebo při runtime použitím konstruktoru make
nebo konverzí to
.
<time-literal> ::= <Red-time> | +<Red-time> | -<Red-time>
<Red-time> ::= <hours>:<minutes> | <hours>:<minutes>:<seconds> | <hours>:<minutes>:<seconds>.<decimals> |
<minutes>:<seconds>.<decimals>
make time! [<hour> <minute> <second>] make time! <integer-literal> | <float-literal> to time! [<hour> <minute> <second>] to time! <integer-literal> | <float-literal> <hour> : <integer-literal> <minute> : <integer-literal> <second> : <integer-literal> | <float-literal>
>> make time! 60
== 0:01:00
>> make time! 95'000
== 26:23:20
>> make time! [3 2 1]
== 3:02:01
>> make time! 300.45
== 0:05:00.45
Přístup ve formátu cesty (path accessor) je vhodný pro získání i zadání hodntot polí objektu typu time!
.
Získá nebo nastaví hodinové pole času ve formátu integer!
.
Příklady
>> t: make time! [3 2 1]
== 3:02:01
>> t/hour
== 3
>> t/hour: 6
== 6
>> t
== 6:02:01
Získá nebo nastaví minutové pole času ve formátu integer!
.
Příklady
>> t: make time! [3 2 1]
== 3:02:01
>> t/minute
== 2
>> t/minute: 7
== 7
>> t
== 3:07:01
Získá nebo nastaví vteřinové pole času ve formátu float!
.
Příklady
>> t: make time! [3 2 1]
== 3:02:01
>> t/second
== 1.0
>> t/second: 58
== 58
>> t
== 3:02:58
Pole času jsou také přístupná přes index cesty
:
>> t
== 3:02:01
>> t/1
== 3
>> t/2
== 2
>> t/3
== 1.0
to integer! <time> <time> : a time! value
>> t
== 3:02:01
>> to integer! t
== 10921 ; počet vteřin
to float! <time> <time> : a time! value
>> t
== 3:02:01
>> to float! t
== 10921.0
Hodnoty typu integer!
, float!
a percent!
lze přeměnit na hodnoty typu time
:
>> i: to integer! t
== 10921
>> to time! i
== 3:02:01
>> f: to float! t
== 10921.0
>> to time! f
== 3:02:01
>> p: to percent! t
== 1092100%
>> to time! p
== 3:02:01
Na hodnoty typu time!
lze aplikovat všechny komparační operátory: =, ==, <>, >, <, >=, <=, =?
. Navíc jsou podporovány funkce min
a max
.
Podporované matematické operace s hodnotami typu time!
jsou:
-
přičtení či odečtení hodnot z libovolného časového pole
-
přičtení či odečtení celého čísla a hodnoty typu
time!
-
přičtení či odečtení hodnot typů
time!
. -
násobení či dělení hodnot libovolného časového pole
-
násobení či dělení celého čísla a hodnoty typu
time!
Příklady
>> t: 2:30:45
== 2:30:45
>> t/hour: t/hour + 5
== 7
>> t
== 7:30:45
>> t/minute: t/minute - 20
== 10
>> t
== 7:10:45
>> 1:40:45 + 50
== 1:41:35
>> 1:40:45 - 100
== 1:39:05
>> 3:02:01 + 1:45:30
== 4:47:31
>> 3:02:01 - 1:00:00
== 2:02:01
t: 2:30:45
>> t/second: t/second * 5
== 225.0
>> t
== 2:33:45
>> t/2 / 3
== 11
>> t/2 // 3
== 0
>> t/3 * 3
== 135.0
Použijte time?
k ověření, zda je zadaná hodnota typu time!
.
>> time? t
== true
Použijte type?
ke zjištění typu zadané hodnoty.
>> type? t
== time!
>>