Programovanie makier v LibreOffice: Bližší pohľad na dátum a čas – funkcie Date, Time, Now, IsDate a CDate

LibreOffice 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.   

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.

Lokálne jazykové nastavenie Lokálne jazykové nastavenie

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 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 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 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í

(Jako ve škole) Průměr: 1.00 | Hodnotilo: 2
 

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