eXcellence-team eXcellence

Время и дата

Для работы с датой в VBA предусмотрен специальный тип Date. Он занимает 8 байт и хранит дату во внутреннем представлении VB. Чтобы преобразовать дату и время из строки в этот формат, можно воспользоваться функциями DateValue и TimeValue.

Sub DateConversionTest()
  Dim TestDate As Date
  TestDate = DateValue("2/3/98")
  MsgBox (Str(Year(TestDate)))
End Sub

Или в случае со временем:

Sub TimeConversionTest()
  Dim TestDate As Date
  TestDate = TimeValue("11:12:13")
  MsgBox Str(Minute(TestDate))
End Sub

Чтобы хранить вместе и дату и время, можно сделать так:

Sub Test()
  Dim MyTimeDate As Date
  MyTimeDate = DateValue("7/2/93") + TimeValue("11:12:13")
  MsgBox Str(Minute(MyTimeDate))
  MsgBox Str(Year(MyTimeDate))
End Sub

Функции для работы с датой и временем:

Month(переменная типа Date)
Day(переменная типа Date)
Year(переменная типа Date)
Hour(переменная типа Date)
Minute(переменная типа Date)
Second(переменная типа Date)
WeekDay(переменная типа Date)

Возвращают соответственно месяц, день, год, часы, минуты, секунды и день недели.

Sub Test()
  Dim MyDate As Date
  MyDate = DateValue("3/7/89")
  If (WeekDay(MyDate) = vbSunday) Then MsgBox ("Sunday")
End Sub

vbSunday, vbMonday, ... - предопределенные константы для дней недели.