Proměnné pro datum Funkce pro práci s ním Datumový datový typ Proměnné pro datum Funkce pro práci s ním
Datumový datový typ 1 Tento datový typ je určen pro ukládání datumů a časů Je uložen jako IEEE 64-bit (8-byte) číslo s pohyblivou desetinou čárkou, které representuje datumy od 1. ledna 100 do 31.prosince 9999 a časy od 0:00:00 do 23:59:59
Datumový datový typ 2 Datumový datový typ je zobrazován ve vybraném formátu Numerické datové typy lze převést na datumový – celá část odpovídá datumu a desetinná část času (např. 0,5 odpovídá poledni) Záporná celá čísla dopovídají datům před 30.prosincem 1899
Funkce zjišťující datum Date – vrací aktuální datum Time – vrací aktuální čas Now – vrací aktuální datum a čas Jako aktuální datum se rozumí údaj nastavený v PC
Údaje o datu a času Z datumu získaného pomocí funkce Now lze získat jednotlivé části datumu Second(Now) – vrací vteřiny Minute(Now) – vrací minuty Hour(Now) – vrací hodiny Day(Now) – vrací den Month(Now) – vrací měsíc Year(Now) – vrací rok Weekday(Now) – vrací den v týdnu
Formátování datumu Pomocí funkce Format(Now," dd.mm.yyyy hh:nn:ss AM/PM ") můžeme formátovat údaj získaný pomocí funkce Now jako řetězec v libovolném tvaru zadaném v uvozovkách Kterýkoliv údaj můžeme vynechat a pořadí zobrazování můžeme měnit AM/PM zobrazí datum ve 12-ti hodinovém formátu (AM znamená ráno, PM odpoledne) Existují ještě další formátovací příkazy
Vkládání datumu Funkce DateSerial vrací proměnnou typu Date pro zadané číselné hodnoty rok, měsíc, den. Syntax: DateSerial(rok,měsíc,den)
Funkce pro práci s datumy 1 Funkce DateDiff vrací rozdíl mezi dvěma daty v zadaném intervalu Syntax: DateDiff(“interval”, datum1, datum2) Funkce DatePart vrací specifikovanou část zadaného data. Syntax: DatePart(„interval“, datum)
Funkce pro práci s datumy 2 Funkce DateAdd vrací proměnou obsahující datum, které vzniklo tím, že k zadanému datumu byl přidán určený počet časových intervalů Syntax: DateAdd(interval, počet, datum)
Stopky 1 Vytvořte stopky, které budou měřit čas ve vteřinách Ke sledování času použijte objekt Timer Čas zobrazte ve formátu “nn:ss” Timer
Stopky 2 Nejprve definujeme potřebné proměnné Při spuštění programu nastavíme potřebné hodnoty proměnných Dim A As Date ' Spuštení stopek Dim B As Date ' Zastavení stopek Dim K As Boolean ' Kontrola chodu stopek Private Sub Form_Load() K = False End Sub
Stopky 3 Nejprve ošetříme spuštění stopek Jak na to zareaguje timer? If K = False Then ' Stopky stojí K = True Timer1.Interval = 1 Command1.Caption = "Konec" A = Time ' Čas spuštění stopek B = Time ' Momentální čas Label1.Caption = Format(B - A, "nn:ss")
Stopky 4 Stopky se rozběhly, zbývá je zastavit kliknutím na tlačítko Konec Jak to ošetřit? Else ' Stopky běží K = False Timer1.Interval = 0 ' Zastavení timeru Command1.Caption = "Start"
Stopky s milisekundami 1 Visual Basic sám umí pomocí timeru určit čas na sekundy Abychom mohli určovat čas přesněji, použijeme systémovou API funkci GetTickCount, která vrací počet milisekundových kliků od startu počítače Private Declare Function GetTickCount Lib "kernel32" () As Long
Stopky s milisekundami 2 Vytvoříme třídu clsTimeTaken, která obsahuje dvě metody StartTimer() a StopTimer() a veřejnou vlastnost TimeTaken() Do stávajícího programu Stopky doplníme na formulář jeden prvek Label a doplníme proceduru reagující na stisknutí tlačítka
Třída clsTimeTaken Private StartTime As Long - počet kliků při stisknutí Start Private EndTime As Long - počet kliků při stisknutí Konec Private TotalTime As Long - rozdíl počtu kliků při stisknutí Public Sub StartTimer() - stisknutí Start StartTime = GetTickCount TotalTime = 0 End Sub Public Sub StopTimer() - stisknutí Konec EndTime = GetTickCount TotalTime = EndTime - StartTime Debug.Print TotalTime & " milliseconds (" & TotalTime / 1000 & " seconds)" Public Property Get TimeTaken() As Long - vrací počet milisekund TimeTaken = TotalTime End Property
Procedura Dim Cas As Long Private Sub Command1_Click() If K = False Then ' Stopky stojí K = True objTime.StartTimer -- Spuštění stopek Command1.Caption = "Konec" Label2.Caption = "" A = Time ' Čas spuštění stopek Timer1.Interval = 10 Else ' Stopky běží K = False objTime.StopTimer -- Zastavení stopek Timer1.Interval = 0 Cas = objTime.TimeTaken -- Převzat dosažený čas Label2.Caption = Cas / 1000 Command1.Caption = "Start" End If End Sub
Připomínáček 1 Občas se hodí malý prográmek, který vám připomene, že máte něco udělat (třeba jít na oběd nebo zavolat domů) Stačí do něj vložit požadovaný čas upozornění a zapsat, na co má upozornit
Připomínáček 2 Program obsahuje 2 textboxy (pro čas a pro sdělení), 2 tlačítka (spuštění budíku a ukončení programu) a nezbytný timer Text1 Text2 Command1 Command2
Připomínáček 3 Po vložení času a textu připomínky postačí stisknout tlačítko a program se rozběhne Timer musí mít nastaven interval na hodnotu větší než 0 Private Sub Command1_Click() Form1.WindowState = 1 ‘ Okno se minimalisuje timer1.Enabled = True ‘ Timer se rozběhne End Sub
Připomínáček 4 Co dělá timer? A to je všechno Private Sub timer1_Timer() aktualnicas = Format(Time, "h:mm") ‘ načtení aktuál. času If (aktualnicas = Text1.Text) Then ‘ je-li stejný se zadaným timer1.Enabled = False MsgBox (Text2.Text ), , "Osobní budík“ ‘ spustí hlášku Form1.WindowState = 0 ‘ zobrazí připomínáček End If End Sub