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

Урок 11 по VBScript: Функции vbs для работы с датой и временем Программирование на VBSCRIPT

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

Хорошо, давайте приступим.

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

Date – позволяет получить текущую дату (число, месяц и год).

'***********************************' Текущая дата' date.vbs'***********************************     MsgBox date

DateAdd(iterval, number, date) – добавляет к заданной дате date заданный промежуток iterval:

interval  — параметр определяет тип интервала, является строковой константой и может принимать следующие значения:

  • yyyy — год;
  • q — квартал;
  • m — месяц;
  • y — номер дня в году;
  • d — день;
  • w — номер дня в неделе;
  • ww — номер недели в году;
  • h — час;
  • n — минута;
  • s — секунда;

number – определяет число интервалов, параметр принимает как положительные, так и отрицательные значения. Если передано дробное число, то оно округлится.

'***********************************' Отсчет даты' dateadd.vbs'***********************************     dim my_date my_date = #10/05/2000# ' назад на 4 месяцаMsgBox dateadd("m",-4,my_date)        '05.06.2000 ' вперед на 222 000 часовMsgBox dateadd("h",222000,my_date)            '01.02.2026

DateDiff(interval, date1, date2[, firstdayofweek [, firstweekofyear]]) – позволяет получить значение временных интервалов (interval параметр описан в функции vbs AddDate). Аргументы date1, date2 – те даты, между которыми вычисляется разница. firstdayofweek – позволяет указать, с какого дня нужно считать начало недели, firstweekofyear — это константа, показывающая, какую неделю следует считать первой в году.

Скачать архив с примерами

'***********************************' интервал' DateDiff.vbs'***********************************     dim my_date_1, my_date_2 my_date_1 = #10/05/2000#my_date_2 = #10/05/2012# ' промежуток 4383 дняMsgBox DateDiff("d", my_date_1, my_date_2)' промежуток в 24 часаMsgBox DateDiff("h", "20/10/2000", "21/10/2000")

DatePart(interval, date [, firstdayofweek [, firstweekofyear]]) – возвращает указанную часть даты, например день, месяц и так далее.

'***********************************' парсинг даты' DatePart.vbs'***********************************     dim my_datedim y, m, ddim list my_date = date ' годy = DatePart("yyyy", my_date) ' месяцm = DatePart("m", my_date) ' деньd = DatePart("d", my_date) list="" & "год:" & vbTab & y & vbCrLflist=list & "месяц:" & vbTab & m & vbCrLflist=list & "день:" & vbTab & d MsgBox list

DateValue(date) – в этой функции vbs происходит проверка на корректную дату.

'***********************************' Проверка на дату' DateValue.vbs'***********************************     dim my_datedim y, m, ddim list my_date = date MsgBox DateV иalue(my_date)                                   'вернет текущую датуMsgBox DateValue("20, сентябрь, 2000")       '20.09.2000MsgBox DateValue("20,05,2000")                    '20.05.2000MsgBox DateValue(20062012)                         'Ошибка

Hour(time) – данная vbs функция позволяет извлечь значение часа из передаваемого параметра time. Возвращается целое число в диапазоне от 0 до 23.

'***********************************' Получаем число часов' hour.vbs'***********************************     dim date_1, date_2, date_3 date_1 = datedate_2 = "22:33"date_3 = #15/10/2013 11:25# MsgBox hour(date_1)     '0MsgBox hour(date_2)     '22MsgBox hour(date_3)     '11

Minute(time) – аналог Hour(), только вернёт число минут в диапазоне от 0 до 59.

'***********************************' Получаем количество минут' Minute.vbs'***********************************     dim date_1, date_2, date_3 date_1 = datedate_2 = "22:33"date_3 = #15/10/2013 11:25# MsgBox minute(date_1) '0MsgBox minute(date_2) '33MsgBox minute(date_3) '25

Month(date) — выделяет номер месяца из даты, заданной пара­метром date. Возвращает целое число от 1 до 12.

'***********************************' Определяем номер месяца' Month.vbs'***********************************     dim date_1, date_2, date_3 date_1 = datedate_2 = "22:33"date_3 = #15/10/2013 11:25# MsgBox month(date_1)  'текущий месяцMsgBox month(date_2)  '12MsgBox month(date_3)  '10

MonthName(month [, abbr]) – позволяет получить наименование месяца. Параметр month – целое значение в диапазоне от 1 до 12 (номер месяца), параметр abbr – булево значение, если установлено true – краткий формат, если false – полный формат, по умолчанию — false.

'***********************************' Имя месяца' MonthName.vbs'***********************************     MsgBox MonthName(5,true)     ' майMsgBox MonthName(5,false)    ' Май

Now – аналогично функции vbs Date, но помимо текущей даты возвращает и время.

'***********************************' Получение текущей даты и времени' Now.vbs'***********************************    dim date_1, date_2 date_1 = datedate_2 = now MsgBox date_1   ' вернет датуMsgBox date_2   ' вернет дату и время

Time – собственно, вернёт текущее системное время.

'***********************************' Системное время' Time.vbs'***********************************     OptionExplicit dim cur_time cur_time = time MsgBox cur_time

Timer – вернёт количество прошедших с полуночи секунд (точность до 1 миллисекунды, три знака после комы). Удобно использовать для вычисления времени, затраченного на выполнение блока кода.

'***********************************' Таймер' Timer.vbs'***********************************     OptionExplicit Dim Old_Time, Time_Elapsed, N, IOld_Time = TimerN = 0For I = 1 To 100000   N = N + 1NextTime_Elapsed = Timer - Old_Time ' Время выполнения циклаMsgBox "Цикл выполнялся " & Time_Elapsed

TimeSerial(hour, minute, second) – вернёт тип Вариант подтипа Date с указанным временем, тут параметр hour – часы, диапазон от 0 до 23, minute – минуты, диапазон от 0 до 59, second – секунды, от 0 до 59. Если значение параметра превышает заданный предел, то это повлияет на следующий параметр.

'***********************************' Задаем время' TimeSerial.vbs'***********************************     OptionExplicit Dim my_time_1, my_time_2 my_time_1 = TimeSerial(12,30,25)my_time_2 = TimeSerial(30,-50,25) MsgBox my_time_1 &  vbCrLf & my_time_2

TimeValue(time) — вернёт переменную подтипа Date, которая соответствует времени, заданному параметром time. Параметр time может содержать строку, литерал времени или тип Дата.

'***********************************' вернуть значение времени' TimeValue.vbs'***********************************     OptionExplicit Dim a, b, c a = nowb = "20.12.13 22:33"c = #10/10/2010#MsgBox TimeValue(a) & vbCrLf & TimeValue(b) & VbCrLf & TimeValue(c)

Weekday(date[, firstdayofweek]) — возвращает номер дня недели для даты, заданной параметром date. Пара­метр firstdayofweek — это константа, показывающая, какой из дней недели следует считать первым.

'***********************************' получаем номер недели' Weekday.vbs'***********************************     OptionExplicit Dim WDWD = Weekday(#02/12/1976#, vbMonday) ' WD = 4 -- четверг MsgBox  WD

WeekdayName(weekday [, abbr[, firstdayofweek]]) — возвращает наименование для дня недели с порядковым номером weekday. Если логический параметр abbr равен true, то наименование дня недели представляется в виде аббревиатуры, в противном случае — в полном виде. Значение параметра firstdayofweek здесь то же, что и в функции Weekday.

'***********************************' получаем имя дня недели' WeekdayName.vbs'***********************************     OptionExplicit Dim MyDateMyDate = WeekdayName(4, False, vbMonday) ' Вернет "четверг" MsgBox  MyDate

Year(date) — выделяет год из даты, заданной параметром date, и возвращает это целое число.

'***********************************' вернуть номер года' Year.vbs'***********************************     OptionExplicit Dim a, b, c a = nowb = "20.12.13 22:33"c = #10/10/2010# MsgBox Year(a) & vbCrLf & Year(b) & VbCrLf & Year(c)
Оцените статью
Технологии программирования и ведение блога
Добавить комментарий