Funkcie Date, Time a Now
Na vypísanie súčasného času môžeme použiť rovno tri funkcie a to menovité Date, Time a
Now. Líšia sa len tým, čí vracajú čas alebo dátum resp. oboje a ešte v akom formáte. Ukážeme si
jednotlivé syntaxe pre všetky tri funkcie.
Syntaxe pre funkcie Date, Time a Now sú jednoduché a nemajú argumenty:
Date()
Time()
Now()
Funkcia Date vracia aktuálny dátum a funkcia Time aktuálny čas. Oba funkcie vracajú
výsledok ako reťazec. Formát reťazca je podľa lokálneho nastavenia času. Lokálne nastavenie času nájdete v
Tools | Options | Language Settings | Languages. V slovenčine to nájdete ako Nástroje |
Možností | Nastavenie jazyka | Jazyky.
Funkcia Now nevracia aktuálny čas a dátum ako reťazec, ale ako premennú typu Date.
1. príklad: Testujeme funkciu Date, Time a Now.
Sub currentDateandTime REM začiatok makra MsgBox Time() & Chr(10) & Date() & Chr(10) & Now() REM výstup na obrazovku End Sub REM koniec procedúry
Výsledok makra
Funkcia IsDate
Funkcia IsDate nám otestuje, či reťazec alebo číselný výraz vieme previesť na premennú typu
Date. Či už sa rozhodnete napísať čas, dátum alebo oboje, tak funkcia IsDate vráti
pravdivostnú hodnotu True alebo False.
2. príklad: Experimentujeme s funkciou IsDate
Sub functionIsDate 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,-1000,"1000","-1000","10.12.1989","10: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 IsDate
For i = LBound(pole()) To UBound(pole())
retazec = retazec & CStr(i+1) & ". " & pole(i) & " -> "
retazec = retazec & IsDate(pole(i))
retazec = retazec & Chr(10)
Next
REM výpis na obrazovku
MsgBox retazec
End Sub REM koniec procedúry
Výsledok programu
Funkcia CDate
Funkcia CDate nám dokáže previesť reťazec alebo číselný výraz na dátum. Ak chceme zadať číselný výraz,
ešte predtým musíme vedieť pár informácii. Číslo ktoré napíšeme, reprezentuje nejaký dátum. Hodnota 0 sa vzťahuje na
dátum 30. december 1899. Napríklad 41000 po konverzii predstavuje 01.04.2012. Okrem toho viete vyjadriť hodiny
pomocou desatinných čísel. Všetko si ukážeme v treťom príklade a ešte predtým si ukážme syntax.
Syntax funkcie CDate:
CDate(výraz ako číslo alebo reťazec)
3. príklad: Konverzie výrazov na dátumy s pomocou funkcie CDate
Sub functionCDate 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,0,10,100,41000,10.1,25.4,25.14,42014.7,354587,"10.10.2011","12:44","10,11.2014","14/11/2014","17\10\2017")
REM v cykle experimentujeme s funkciou CDate
For i = LBound(pole()) To UBound(pole())
retazec = retazec & CStr(i+1) & ". " & pole(i) & " -> "
retazec = retazec & CDate(pole(i))
retazec = retazec & Chr(10)
Next
REM výpis na obrazovku
MsgBox retazec
End Sub REM koniec procedúry
Testujeme funkciu CDate
Rozbor makra:
Ukážme si najzaujímavejšie body:
2. 0 -> 00:00:00 – nulou to všetko začína
6. 10,1 -> 09.01.1900 02:24:00 – použitie jednej desatinnej čiarky
10. 354587 -> 27.10.2870 – pohľad do ďalekej budúcností

V tomto dielu nášho seriálu o programovaní makier v LibreOffice otvárame minisériu so zameraním na dátum a čas. Dnes
si prejdeme funkcie Date , Time , Now , IsDate a v závere si povieme niečo o funkcii
CDate.










