Wyjazdy studenckie

Strona główna - VISUAL BASIC-informacje - Wstęp - Śrowowisko Visual Basic 6.0 - Kontrolki - Elementy języka - Zmienne i stałe - Instrukcja przypisania - Wyrażenia arytmetyczne - Wyrażenia logiczne - Wyrażenia łańcuchowe - Operacje na datach - Podejmownie decyzji - Pętle - Tablice - Procedury - Funkcje - Zapisywanie do pliku -
Odczytywanie danych z pliku - Znajdowanie błędów


Operacje na datach


>Funkcje

Visual Basic dysponuje kilkoma funkcjami pozwalającymi w wygodny sposób operować za miennych tymu Date. Do Funkcji tych należą:

Date - funkcja, która zwraca datę systemową;

Time - funkcja, która zwraca czas systemowy;

Now - funkcja, która zwraca jednocześnie i datę, i czas systemowy;

Day(data) - zwraca numer dnia miesiąca dla wartości zmiennej data;

Month(data) - zwraca numer miesiąca dla wartości zmiennej data;

WeekDay(data, vbMonday) - zwraca numer dnia tygodnia dla wartości zmiennej data licząc od dnia wskazanego w drugim parametrze;

CDate(strl) - przeprowadza konwersje łańcucha strl zawierającego datę na zmienną typu Date;

Str(data) - przeprowadza konwersję zmiennej data typu Date na łańcuch.


Przykład 12

Dim Nowy_Rok As Date
Dim dlug As Integer
Dim s As String
Nowy_Rok = #1/01/2001#   'nadanie wartości zmiennej Nowy_Rok
dlug = Date - Nowy_Rok   'odwołanie do daty systemowej i obliczenie
                    'różnicy pomiędzy tą datą a wartością zmiennej Nowy_Rok
s = "Minęło już " & Str(dlug) & " dni tego roku."

Ćwiczenie 5
Obliczyć, ile dni upłynęło od daty Twoich urodzin.

W celu wprowadzenia daty urodzin posłużywy się suwakami pionowymi oraz polem tekstowym. Ponadto powiążemy wzajemnie informacje z pola tekstowego oraz z suwaka. Na formularzu umieścimy trzy suwaki o nazwach: scr_dzien, scr_miesiac i scr_rok.

  • W oknie właściwości ustaw właściwości Mic oraz Max dla poszególnych suwaków na:
    • dla suwaka scr_dzien - Min = 1 oraz Max = 31
    • dla suwaka scr_miesiac - Min = 1 a Max = 12
    • dla suwaka scr_rok - Min = 1940 a Max = 2005
    • Wartości te będą stanowiły zakresy zmienności poszczególnych suwaków.
  • Obok suwaków umieść pola tekstowe: txt_dzien, txt_miesiac i txt_rok. Na dole będą dwa przycisko poleceń, btn_oblicz i btn_koniec umożliwiające wykonanie obliczenia i zakończenie programu.
  • Całość uzupełnij o odpowiednio sformatowane etykiety

Zaprojektowany formularz umożliwiający wprowadzenie daty z wykonanie obliczenia może wyglądać tak:

zaprojektowany formularz do ćwiczenia 5

Procedury realizujące wprowadzenie daty za pomocą suwaków oraz obliczające liczbę dni pomiędzy dzisiejszą datą, Date a wprowadzoną datą urodzin mogą wyglądać następująco:

Private Dzien, Miesiac, Rok As String

Private Sub btn_koniec_Click()
Unload Me
End Sub

Private Sub btn_oblicz_Click()
Dim IleDni As Integer
IleDni = Date - CDate(Dzien & "/" & Miesiac & "/" & Rok)
MsgBOx "Przeżyłeś już " & Str(IleDni) & " dni."
End Sub

Private Sub scr_dzien_Change()
txt_dzien.Text = scr_dzien.Value
End Sub

Private Sub scr_miesiac_Change()
txt_miesiac.Text = scr_miesiac.Value
End Sub

Private Sub scr_rok_Change()
txt_rok.Text = scr_rok.Value
End Sub

Private Sub txt_dzien_Change()
Dzien = txt_dzien.Text
scr_dzien.Value = Dzien
End Sub

Private Sub txt_miesiac_Change()
Miesiac = txt_miesiac.Text
scr_miesiac.Value = Miesiac
End Sub

Private Sub txt_rok_Change()
Rok = txt_rok.Text
scr_rok.Value = Rok
End Sub

Należy zwrócić uwagę na wnajemnie powiązanie między suwakami a odpowiednimi polami tekstowymi. W momencie zmiany dokonanej na suwaku (na co reaguje procedura np. csr_dzien_Change()) zmianie ulega oczywiście jesgo wartość, czyli scr_dzien.Value. jednocześnie, aby wartość suwaka mogła być pokazana użytkownikowi, zmieniana jest właściwość Text odpowiedniego pola tekstowego, np. txt_dzien. I odwrotnie, każda zmiana właściwości Text w polu tekstowym powinna powodować zmianę wartości suwaka, scr_dzien.Value. Dlatego też w procedurze obsługującej zmianę suwaka, scr_dzien_Change() odczytana wartość suwaka scr_dzien.Value jest podstawiana do odpowieniego pola tekstowego, czyli txt_dzien.Text, natomiast w procedurze obsługi zmiany pola tekstowego, txt_dzien_Change() wartość tego pola, txt_dzien.Text podstawiana jest na wartość odpowiedniego suwaka, scr_dzien.Value. Zauważmy, że wartość ta jest również podstawiana pod zmienną globalną Dzien potrzebną do skonstruowania daty urodzin w procedurze btn_oblicz_Click().

W procedurze obliczającej liczbę dni życia wykorzystano funkcję CDate, która konwertuje wyrażenia tekstowe w zmienną typu Date. Komunikat wynikowy wyprowadzony jest za pomocą okna MsgBox.