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

Полезные средства для работы с датами и временем унаследованы от Visual Basic 6.0. Вы можете воспользоваться ими, как свойствами и методами модуля DateAndTime пространства имен Microsoft.VisualBasic3. Не путайте модуль DateAndTime со структурой DateTime. Любая переменная или литерал типа даты и времени является экземпляром структуры DateTime, и чтобы воспользоваться ее свойством или методом, вы просто пишете после имени переменной или литерала точку и за ней название свойства или метода, как мы делали это в предыдущем подразделе. Модуль же DateAndTime (как и все модули) не имеет права поставлять нам свои экземпляры для хранения переменных и литералов. Он поставляет свои свойства и методы в виде функций, параметрами которых и будут наши переменные и литералы. Вот пример:

Пусть D1 = #2/14/2009 4:45:07 PM#, D2 = #2/16/2009 11:32:43 AM#. Тогда

Свойство или метод

Значение

Тип значения

Пояснения

DateDiff("h", D1, D2)

42

Long

Количество часов, прошедших с момента D1 до момента D2

На то, что нас интересуют именно часы, указывает параметр "h". Если вас в этой или других функциях интересуют минуты или другие единицы времени, воспользуйтесь следующей таблицей:

Значения строкового параметра для функций работы с датами:

Строковый параметр

Смысл

yyyy

Год

q

Квартал в году

m

Номер месяца в году

y

Номер дня в году

d

Номер дня в месяце

w

Номер дня в неделе (с 1 по 7, а не с 0 по 6). Неделя начинается с воскресенья

ww

Номер недели в году

h

Час в сутках

n

Минута в часе

s

Секунда в минуте

Функция DatePart работает аналогично ряду свойств структуры DateTime .

Пусть D = # 2/14/2009 4:45:07 PM # (это суббота). Тогда

DatePart("m", D)

2

Integer

Функция выделяет из даты номер месяца в году

DatePart("w", D)

7

Integer

Поскольку неделя начинается с воскресенья, то воскресенье имеет №1, а суббота – №7.

DatePart("w", D, vbMonday)

6

Integer

А здесь мы попросили функцию считать первым днем недели понедельник (vbMonday) и поэтому результат она выдала привычный для нас – 6-й день - суббота

Функция DateAdd работает аналогично ряду методов структуры DateTime .

DateAdd("s", 10, D)

14.02.2009 16:45:17

Date

К значению добавляется 10 секунд

DateAdd("m", -1, D)

14.01.2009 16:45:07

Date

Из значения вычитается 1 месяц

MonthName (5)

Май

String

Название 5 месяца в году

WeekdayName (4)

среда

String

4-й день недели (по нумерации 1-7)

Следующие две функции получают из трех целых чисел дату или время суток:

DateSerial(1992, 12, 31)

31.12.1992 0:00:00

Date

3 параметра: год, месяц, день

TimeSerial(23, 59, 58)

01.01.0001 23:59:58

Date

3 параметра: час, минута, секунда

Следующие две функции преобразуют строку в тип Date:

TimeValue("10:44:00 AM")

01.01.0001 10:44:00

Date

Преобразуется время суток

DateValue(“5-6-2004”)

05.06.2004 0:00:00

Date

Преобразуется дата

Следующие два свойства выдают текущую дату и время в виде строки:

DateString

08-24-2003

String

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

TimeString

16:03:16

String

Время суток на момент обращения к этому свойству, то есть текущие показания часов вашего компьютера

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

DateString = "8/24/2003”

Этот оператор устанавливает системные часы Windows на ту дату, какую вы указали. Ничего особо страшного, конечно, от установки неправильной даты не будет, компьютер не сломается, но вот, например, сохраняемые вами файлы будут иметь неправильную дату сохранения, а это приведет к путанице в вашем файловом хозяйстве. Да и некоторые программы могут начать жаловаться.

TimeString = "15:33:11"

Аналогично

Аналогично тикам вы можете пользоваться секундами. Не путайте свойство Timer с элементом управления Timer:

DateAndTime.Timer

57795,8552544

Double

Количество секунд, протекших с полуночи

В VB есть также средство, с помощью которого вы можете предотвратить ввод в текстовое поле неправильных времени и даты. Это функция IsDate, которая подобно функции IsNumeric из 7.7.1 определяет, можно ли считать ее аргумент правильным временем и датой или это белиберда.