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í