Свойства и методы структуры DateTime

Чтобы понять, что от типа DateTime есть какая-то польза, решим пару задач.

Задача 1. 29 мая 2004 года мне выдали задание и сказали, чтобы я уложился в 50 дней. Какого числа наступит крайний срок сдачи задания?

Программа:

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

Dim Сегодня, Крайний_срок As DateTime

Сегодня = #5/29/2004#

Крайний_срок = Сегодня.AddDays(50)

MsgBox(Крайний_срок)

End Sub

В окне MsgBox мы видим результат: 18.07.2004. То есть 18 июля 2004 года – крайний срок сдачи задания. Здесь я использовал метод AddDays(«Добавить дни») структуры DateTime.

Ту же самую программу можно записать короче:

Dim Сегодня As DateTime = #5/29/2004#

MsgBox(Сегодня.AddDays(50))

И еще короче:

MsgBox(#5/29/2004#.AddDays(50))

Задача 2. В отпуск вы отправляетесь 1 июля 2005 года. Какой это день недели?

Программа:

Dim Начало_отпуска As DateTime = #7/1/2005#

MsgBox(Начало_отпуска.DayOfWeek)

Здесь я использовал метод DayOfWeek(«День недели») структуры DateTime. В окне MsgBox мы видим результат: 5. Это пятый день недели – пятница. Кстати, воскресенье в VB – не 7-й день, а нулевой. Это потому, что у американцев неделя начинается с воскресенья, а не с понедельника, как у нас.

Перечень свойств и методов структуры DateTime. Не всех, но популярных. С пояснениями.

Пусть мы задали переменную:

Dim D As DateTime = #2/14/2005 11:41:39 PM#

Ее значение мы будем использовать в этом подразделе, как исходный материал.

Оператор

Debug.WriteLine(D.Date)

напечатает значение

14.02.2005 0:00:00

Мы видим, что свойство Dateвозвращает значение переменной с обнуленной составляющей времени суток, оставив только дату. Тип значения – Date. Заносим вышесказанное в таблицу:

Свойство или метод Значение Тип значения Пояснения
Date 14.02.2005 0:00:00 Date Функция обнуляет в значении переменной составляющую времени суток, оставив только дату

Продолжаем нашу таблицу. Несколько свойств возвращают ту или иную составляющую структуры DateTime:

Year   Integer Выделяет из значения типа DateTime число типа Integer, равное году
Month Integer Аналогично выделяет месяц
Day Integer Аналогично выделяет день
Hour Integer Аналогично выделяет час
Minute Integer Аналогично выделяет минуту
Second Integer Аналогично выделяет секунду
DayOfYear Integer Определяет порядковый номер дня в году
DayOfWeek Monday Перечисление DayOfWeek Определяет день недели. Тип значения – перечисление DayOfWeek из 7 дней недели (0 - 6)

Методы, начинающиеся на Add, увеличивают или уменьшают ту или иную составляющую значения. Например:



AddYears(3) 14.02.2008 23:41:39 Date Увеличивает дату на заданное число годов
AddSeconds(5) 14.02.2005 23:41:44 Date Увеличивает время на заданное число секунд
AddSeconds(80) 14.02.2005 23:42:59    
AddSeconds(-4) 14.02.2005 23:41:35   Уменьшает время на 4 секунды

Аналогичные методы есть для дней, минут и других составляющих даты.

Структура DateTime включает в себя и дробные доли секунды. Минимальной единицей измерения времени в структуре DateTime является тик, равный 0.0000001 сек. Мы можем добавлять тики к значению типа DateTime:

AddTicks(100000000) 14.02.2005 23:41:49 Date Добавить сто миллионов тиков – все равно, что добавить 10 секунд
Ticks Long Сколько тиков прошло с начала новой эры до данной даты

При помощи последних метода и свойства можно, в принципе, заменить действия над данными типа DateTime действиями над целыми числами, иногда превращая их в даты и время суток. Однако, удобнее это делать с помощью специальных функций, которые мы и рассматриваем.

Следующие два метода преобразуют время между вашим часовым поясом и поясом Гринвичского меридиана у Лондона (так называемое время GMT или UTC). Правильно преобразуют они только в том случае, если ваш компьютер правильно настроен на ваш часовой пояс.

ToUniversalTime 14.02.2005 20:41:39 DateTime Если вы имеете в виду, что в переменной D задано время вашего пояса, то эта функция показывает время GMT.
ToLocalTime 15.02.2005 2:41:39 DateTime Наоборот: Если вы имеете в виду, что в переменной D задано время GMT, то эта функция показывает, сколько время в этот момент было в вашем поясе

Следующие методы преобразуют значение из типа DateTime в тип String. После этого его удобно просматривать и к нему можно применять методы работы со строками.

ToString 14.02.2005 23:41:39 String Просто преобразование без изменений
ToLongDateString 14 Февраль 2005 г. String Выделяется дата
ToShortDateString 14.02.2005 String Выделяется дата
ToLongTimeString 23:41:39 String Выделяется время
ToShortTimeString 23:41 String Выделяется время

Следующие методы и свойства принадлежат структуре DateTime и для их использования не нужно создавать переменную типа DateTime. То есть, можно писать, например, просто

Debug.WriteLine(DateTime.Now)

Наши рекомендации