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.

 
AEC Kariéra Volné pozice
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.

 

Public Relations

Chtějte to, na co se můžete spolehnout

Přemýšlíte nad tím, co byste měli udělat pro to, aby na Vaše stránky zavítalo více návštěvníků? Tak to se můžete spolehnout na jedno velice efektivní řešení.

Pokračování ...


Tiskárna Brno (CCB)
 
 
woo jaw demo hz