DatumTyp - Visual Basic 6

Download Report

Transcript DatumTyp - Visual Basic 6

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é
Timer
budou měřit čas ve
vteřinách
 Ke sledování času
použijte objekt Timer
 Čas zobrazte ve
formátu “nn:ss”
Stopky 2
 Nejprve definujeme potřebné proměnné
Dim A As Date
Dim B As Date
Dim K As Boolean
' Spuštení stopek
' Zastavení stopek
' Kontrola chodu stopek
 Při spuštění programu nastavíme potřebné
hodnoty proměnných
Private Sub Form_Load()
K = False
End Sub
Stopky 3
 Nejprve ošetříme spuštění stopek
If K = False Then
' Stopky stojí
K = True
Timer1.Interval = 1
Command1.Caption = "Konec"
A = Time
' Čas spuštění stopek
 Jak na to zareaguje timer?
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
K = False
Timer1.Interval = 0
Command1.Caption = "Start"
' Stopky běží
' Zastavení timeru
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
Private EndTime As Long
Private TotalTime As Long
- počet kliků při stisknutí Start
- počet kliků při stisknutí Konec
- 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)"
End Sub
Public Property Get TimeTaken() As Long
TimeTaken = TotalTime
End Property
- vrací počet milisekund
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
Text1
textboxy (pro čas a
pro sdělení), 2 tlačítka
(spuštění budíku a
ukončení programu) a
nezbytný timer
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
Private Sub Command1_Click()
Form1.WindowState = 1
timer1.Enabled = True
End Sub
‘ Okno se minimalisuje
‘ Timer se rozběhne
 Timer musí mít nastaven interval na
hodnotu větší než 0
Připomínáček 4
 Co dělá timer?
Private Sub timer1_Timer()
aktualnicas = Format(Time, "h:mm")
If (aktualnicas = Text1.Text) Then
timer1.Enabled = False
MsgBox (Text2.Text ), , "Osobní budík“
Form1.WindowState = 0
End If
End Sub
A to je všechno
‘ načtení aktuál. času
‘ je-li stejný se zadaným
‘ spustí hlášku
‘ zobrazí připomínáček