Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание пользовательских п ÒÉÌÏÖÅÎÉÊ ÓÒÅÄÓÔÁÍ...doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

Примеры функций даты и времени Функции Day, Month, Year, DateSerial

Пример

В процедуре определяется, какой день недели будет через год и 12 дней по отношению к текущему дню.

Sub valdate()

Dim xdate As Date, old_date As Date

old_date = Date

Date = #7/24/2007#

xdate = DateSerial(Year(Date) + 1, Month(Date), _

Day(Date) + 12)

Debug.Print Format(xdate, "ddd , dd mm yyyy")

Date = old_date

End Sub

Функция DateSerial вычисляет значение даты по измененным значениям дня и года. Функция Format преобразует дату в строку, дополнительно показывая день недели.

Распечатываемый результат – Вт , 05 08 2008.

Функции Now, Time, Timer

Примеры

  1. Процедура распечатывает количество минут и секунд от полуночи до текущего времени. Результат: 720 минут и 43200 секунд.

    Sub minute_second()

    Dim ndate As Double, mdate As Double

    Dim old_time As Date

    old_time = Time

    Time = #12:00:00 PM#

    ' первый способ

    ndate = Time

    Debug.Print "first", ndate * 1440

    ' второй способ

    ndate = Now

    mdate = ndate – Fix(ndate)

    Debug.Print "second", mdate * 1440

    'количество секунд от полуночи до текущего 'времени

    Debug.Print Timer

    Time = old_time

    End Sub

    Первый способ. Получить системное время в часах и минутах и умножить на 1440 (количество минут в сутках).

    Второй способ. Получить текущую дату и время (функция Now), отсечь дату, используя функцию Fix, и разницу между полученными двумя числами умножить на 1440.

  2. В процедуре вычисляется, который час будет через 257 минут.

Sub minute_257()

Dim xdate As Date

Dim old_time As Date

old_time = Time

Time = #12:00:00 PM#

xdate = Time

Debug.Print "Через 257 минут будет "; Format(xdate + 257 / 1440, "h"); " час."

Time = old_time

End Sub

К текущему времени прибавляется доля, которую составляют 257 минут от общего количества минут в дне.

Результат (16 час.) форматируется в виде целого числа часов

Функция WeekDay

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

Синтаксис Weekday(date, [firstdayofweek])

date – дата;

firstdayofweek – необязательный аргумент, задающий первый день недели. Обычно используются константы Visual Basic. По умолчанию vbSunday или 1.

Пример

Какой день недели приходится на 4 ноября в течение ближайших пяти лет?

Sub day_in_week()

Dim xdate As Date, y As Integer, i As Integer

y = Year(Date)

For i = 1 To 5

xdate = DateSerial(Year:=y, Month:=11, Day:=4)

Debug.Print Format(xdate, "dddd dd mm yy"); _

Weekday(Date:=xdate, firstdayofweek:=2)

y = y + 1

Next i

End Sub

Дата форматируется и распечатывается вместе с числом, показывающим день недели. Константа 2 (vbMonday) заданная для firstdayofweek, означает, что первый день недели – понедельник.