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

2005

Integer

Выделяет из значения типа DateTime число типа Integer, равное году

Month

2

Integer

Аналогично выделяет месяц

Day

14

Integer

Аналогично выделяет день

Hour

23

Integer

Аналогично выделяет час

Minute

41

Integer

Аналогично выделяет минуту

Second

39

Integer

Аналогично выделяет секунду

DayOfYear

45

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

632440212990000000

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)

DaysInMonth(1996, 2)

29

Integer

Сколько дней во 2 месяце 1996 года

IsLeapYear(2004)

True

Boolean

Правда ли, что 2004 год – високосный.

Now

23.08.2003 17:42:10

Date

Дата и время на момент выполнения этого оператора, то есть текущие показания часов вашего компьютера

Today

23.08.2003 0:00:00

Date

То же самое, только без времени суток