Programovanie makier v LibreOffice: Bližší pohľad na dátum a čas – funkcie Hour, Minute a Second

V minulých dvoch dielách sme sa venovali prevažne dátumu. Ale čo čas? Existujú nejaké funkcie napr. na zistenie aktuálnej hodiny? Áno existujú a v tomto dieli si s nimi zaexperimentujeme. Presnejšie v článku sa zameriame na funkcie Hour , Minute a Second .  

Funkcia Hour

Ak chceme získať hodinu z podporovaného formátu dátumu, využijeme nato funkciu Hour. Návratová hodnota funkcie Hour je celé číslo od intervalu 0 do 23. Pochopiteľne, číslo označuje konkrétnu hodinu počas dňa.

Syntax funkcie Hour je nasledovná:

Hour(číslo alebo podporovaný formát času)

1. príklad: Experimenty s funkciou Hour

Sub functionHour  REM začiatok makra
On Error Resume Next  REM ak nastane chyba, nech makro beží ďalej
Dim i As Integer   REM deklarácie premenných
Dim retazec As String
Dim pole()
REM naplňujeme naše pole
pole() = Array(Now,10.5,"29.02.2016",-1000,"1000","-1000",458,"10.12.1989", _
    "21:21","11/12","10:20:55","11/5/1000","21/11/1987","11\11\1111", _
    "5 November, 1983 11:12:24","1983.12.12","12.12.1922 15:10:22","15:10:22 12.12.1922")
REM v cykle experimentujeme s funkciou Hour
For i = LBound(pole()) To UBound(pole())
        retazec = retazec & CStr(i+1) & ". " & pole(i) & " ->  "
        retazec = retazec & Hour(pole(i))
        retazec = retazec & Chr(10)
Next 
REM výpis na obrazovku 
MsgBox retazec
End Sub   REM koniec procedúry

Test argumentov funkcie Hour Test argumentov funkcie Hour

Rozbor programu:

Zápis numerickým spôsobom nám vypľuje napr. takýto výsledok: 2. 10,5 ->  12. Ak zapíšeme čas v podporovanom formáte, dostaneme takýto výsledok: 11. 10:20:55 ->  10. Ak k tomuto pridáme i dátum, výsledok môže vyzerať i takto: 17. 12.12.1922 15:10:22 ->  15.

Funkcia Minute

Ukázali sme si, ako získať z istého zápisu hodinu. A pokračujeme minútami. Na získanie počtu minúť využijeme funkciu Minute. Keďže jedna hodina má 60 minút, tak funkcia vracia celé číslo predstavujúce interval od 0 do 59.

Syntax funkcie Minute je nasledovná:

Hour(číslo alebo podporovaný formát času)

2. príklad: Test funkcie Minute

Sub functionMinute  REM začiatok makra
On Error Resume Next  REM ak nastane chyba, nech makro beží ďalej
Dim i As Integer   REM deklarácie premenných
Dim retazec As String
Dim pole()
REM naplňujeme naše pole
pole() = Array(Now,10.5,"29.02.2016",-1000,"1000","-1000",458,"10.12.1989", _
    "21:21","11/12","10:20:55","11/5/1000","21/11/1987","11\11\1111", _
    "5 November, 1983 11:12:24","1983.12.12","12.12.1922 15:10:22","15:10:22 12.12.1922")
REM v cykle experimentujeme s funkciou Minute
For i = LBound(pole()) To UBound(pole())
        retazec = retazec & CStr(i+1) & ". " & pole(i) & " -> "
        retazec = retazec & Minute(pole(i))
        retazec = retazec & Chr(10)
Next 
REM výpis na obrazovku 
MsgBox retazec
End Sub   REM koniec procedúry

Ukážka výstupu funkcie Minute Ukážka výstupu funkcie Minute

Rozbor makra:

Počet minút z aktuálneho dátumu a času dostaneme takto: 1. 12.04.2018 14:10:55 ->  10.

Síce je 2. 10,5 ->  0 platný zápis, ale nie je tam žiadna konkrétnejšia informácia o počtu minút, preto je východzia nultá minúta. A to isté platí aj pre 3. 29.02.2016 ->  0.

Funkcia Second

Ukázali sme hodiny a minúty. Čo nám ešte chýba? Presne tak, sekundy! Funkcia Second vracia číslo od intervalu 0 do 59.

Syntax funkcie Second je rovnaká ako už pri spomenutých funkcii:

Second(číslo alebo podporovaný formát času)

3. príklad: Experimentujeme s funkciou Second

Sub functionSecond  REM začiatok makra
On Error Resume Next  REM ak nastane chyba, nech makro beží ďalej
Dim i As Integer   REM deklarácie premenných
Dim retazec As String
Dim pole()
REM naplňujeme naše pole
pole() = Array(Now,10.5,"29.02.2016",-1000,"1000","-1000",458,"10.12.1989", _
    "21:21", "11/12","10:20:55","11/5/1000","21/11/1987","11\11\1111", _
    "5 November, 1983 11:12:24","1983.12.12","12.12.1922 15:10:22","15:10:22 12.12.1922")
REM v cykle experimentujeme s funkciou Second
For i = LBound(pole()) To UBound(pole())
        retazec = retazec & CStr(i+1) & ". " & pole(i) & " ->  "
        retazec = retazec & Second(pole(i))
        retazec = retazec & Chr(10)
Next 
REM výpis na obrazovku 
MsgBox retazec
End Sub   REM koniec procedúry

A na záver test poslednej funkcii v tomto článku A na záver test poslednej funkcii v tomto článku

(Jako ve škole) Průměr: 2.60 | Hodnotilo: 5
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky astrotech.cz. Mám 24 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.

 
 
 
woo jaw demo hz