Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятно о Visual Basic.NET. Самоучитель.Ч2.2005...docx
Скачиваний:
46
Добавлен:
25.11.2019
Размер:
4.02 Mб
Скачать
      1. Переменные и литералы типа DateTime

Когда вы пишете в окне кода программу, в ней встречаются литералы: числа, строки, а теперь вы должны научиться писать в программе литерал даты и времени суток. Чтобы VB понял, что перед ним число, вы просто пишете цифры, и он понимает. Чтобы VB понял, что перед ним строка, вы пишете ряд букв и берете его в двойные кавычки, и VB понимает, что это строка. Чтобы VB понял, что перед ним дата или время суток, вы правильно записываете дату и время и заключаете их между значками #, и он понимает, что это литерал типа DateTime. Вот пример правильной записи: #2/16/2002#. Перед вами не что иное, как 16 февраля 2002 года. Как правильно записывать дату и время в других случаях, вы поймете из других примеров:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Debug.WriteLine(#6/25/2001#) '25 июня 2001 года

Debug.WriteLine(#2:22:57 PM#) '2 часа 22 минуты 57 секунд после полудня (PM)

Debug.WriteLine(#2/28/1998 10:45:00 PM#) '10 часов 45 минут вечера 28 февраля 1998 года

Dim D, T, DT As DateTime

D = #12/25/2044#

T = #2:00:32 AM# '2 часа 00 минут 32 секунды до полудня (AM)

DT = #1/15/2156 11:59:42 PM#

Debug.WriteLine(D)

Debug.WriteLine(T)

Debug.WriteLine(DT)

End Sub

Эта процедура напечатает такие результаты:

25.06.2001 0:00:00

01.01.0001 14:22:57

28.02.1998 22:45:00

25.12.2044 0:00:00

01.01.0001 2:00:32

15.01.2156 23:59:42

Пояснения: Как видите, в окне кода мы обязаны писать дату и время по-американски, то есть месяц писать раньше числа и разделять все это косыми чертами, а в обозначении времени суток VB заставляет вас указывать, до или после полудня было дело. А вот результаты по этим непривычным данным печатаются все равно по-нашему, вернее, так, как настроена Windows (а у большинства она настроена на Россию).

Вы можете задавать переменную типа DateTime и в виде строки.

D = "5/6/2003 10:45:12 PM"

В этом случае, если дата и время в строке записаны правильно, VB автоматически преобразует строку в тип DateTime. А вот если вы захотите задавать дату или время при помощи оператора

D = InputBox("Введите дату")

или из текстового поля, то вводить их по-американски нельзя и значки # тоже нельзя ставить.

Переменная типа DateTime включает в себя всегда и дату, и время суток. Но при задании значения такой переменной вы не обязаны задавать и то и другое одновременно. Если вы не задали время суток, то, как видите из результатов, считается, что временем суток данной переменной является 0:00:00, то есть полночь – начальный момент суток. Если вы не задали дату, то считается, что датой в данной переменной является 01.01.0001, то есть первый день нашей эры.

Что делать, если я хочу в результатах видеть только дату, а не время, или наоборот – только время, а не дату? Об этом чуть позже.

Кроме типа DateTime со временем в VB имеет дело тип TimeSpan. Его сфера компетенции – не столько конкретные даты и моменты времени, сколько протяженность промежутков времени. Мы не будем его рассматривать.