Функция DateDiffDateDiff function

Возвращает значение типа Variant (Long), указывающее на количество интервалов времени между двумя указанными датами.Returns a Variant (Long) specifying the number of time intervals between two specified dates.

СинтаксисSyntax

DateDiff(интервал, дата1, дата2, [ первый_день_недели, [ первая_неделя_года ]] )DateDiff(interval, date1, date2, [ firstdayofweek, [ firstweekofyear ]] )

Синтаксис функции DateDiff использует следующие именованные аргументы:The DateDiff function syntax has these named arguments:

ЧастьPart ОписаниеDescription
интервалinterval Обязательный аргумент.Required. Строковое выражение, которое обозначает интервал времени, используемый для вычисления разницы значений дата1 и дата2.String expression that is the interval of time you use to calculate the difference between date1 and date2.
дата1, дата2date1, date2 Обязательный элемент; Variant (Date).Required; Variant (Date). Две даты, которые требуется использовать в расчете.Two dates you want to use in the calculation.
первый_день_неделиfirstdayofweek Необязательный аргумент.Optional. Константа, задающая первый день недели.A constant that specifies the first day of the week. Если она не указана, им является воскресенье.If not specified, Sunday is assumed.
первая_неделя_годаfirstweekofyear Необязательно.Optional. Константа, задающая первую неделю года.A constant that specifies the first week of the year. Если она не указана, первой неделею является неделя, начинающаяся 1 января.If not specified, the first week is assumed to be the week in which January 1 occurs.

ПараметрыSettings

Аргумент интервал имеет следующие параметры:The interval argument has these settings:

ПараметрSetting ОписаниеDescription
yyyyyyyy ГодYear
qq КварталQuarter
mm МесяцMonth
yy День годаDay of year
dd ДеньDay
ww День неделиWeekday
wwww НеделяWeek
hh ЧасыHour
nn МинутыMinute
ss СекундыSecond

Аргумент первый_день_недели может принимать следующие значения:The firstdayofweek argument has these settings:

КонстантаConstant ЗначениеValue ОписаниеDescription
vbUseSystemvbUseSystem 00 Используются параметры API NLS.Use the NLS API setting.
vbSundayvbSunday 11 Воскресенье (по умолчанию)Sunday (default)
vbMondayvbMonday 22 ПонедельникMonday
vbTuesdayvbTuesday 33 ВторникTuesday
vbWednesdayvbWednesday 44 СредаWednesday
vbThursdayvbThursday 55 ЧетвергThursday
vbFridayvbFriday 66 ПятницаFriday
vbSaturdayvbSaturday 77 СубботаSaturday

КонстантаConstant ЗначениеValue ОписаниеDescription
vbUseSystemvbUseSystem 00 Используются параметры API NLS.Use the NLS API setting.
vbFirstJan1vbFirstJan1 11 Начать с недели, содержащей 1 января (по умолчанию).Start with week in which January 1 occurs (default).
vbFirstFourDaysvbFirstFourDays 22 Первой неделей считается та, которая содержит хотя бы четыре дня нового года.Start with the first week that has at least four days in the new year.
vbFirstFullWeekvbFirstFullWeek 33 Первой неделей считается первая полная неделя года.Start with first full week of the year.

ПримечанияRemarks

Функция DateDiff используется для определения числа интервалов времени между двумя датами.You can use the DateDiff function to determine how many specified time intervals exist between two dates. Например, DateDiff можно использовать для вычисления числа дней между двумя датами или числа недель между сегодняшним днем и концом года.For example, you might use DateDiff to calculate the number of days between two dates, or the number of weeks between today and the end of the year.

Для вычисления числа дней между аргументами дата1 и дата2 используется значение "День года" ("y") или "День" ("d").To calculate the number of days between date1 and date2, you can use either Day of year ("y") or Day ("d"). Если интервал задан как "День недели" ("w"), DateDiff возвращает число недель между двумя датами.When interval is Weekday ("w"), DateDiff returns the number of weeks between the two dates. Если день дата1 приходится на понедельник, DateDiff считает число понедельников до дня дата2.If date1 falls on a Monday, DateDiff counts the number of Mondays until date2. День, соответствующий значению аргумента дата2, учитывается, а дата1 — нет.It counts date2 but not date1.

Однако если интервал задан как "Неделя" ("ww"), функция DateDiff возвращает число календарных недель между двумя датами.If interval is Week ("ww"), however, the DateDiff function returns the number of calendar weeks between the two dates. Для этого рассчитывается число воскресений между днями дата1 и дата2.It counts the number of Sundays between date1 and date2. DateDiff учитывает день дата2, если он приходится на воскресенье; день дата1 не учитывается, даже если он приходится на воскресенье.DateDiff counts date2 if it falls on a Sunday; but it doesn't count date1, even if it does fall on a Sunday.

Если значение дата1 соответствует более поздней дате, чем значение дата2, функция DateDiff возвращает отрицательное число.If date1 refers to a later point in time than date2, the DateDiff function returns a negative number. Аргумент первый_день_недели влияет на вычисления, если заданы значения "w" и "ww".The firstdayofweek argument affects calculations that use the "w" and "ww" interval symbols.

Если аргумент дата1 или дата2 содержит литерал даты, указанный год становится постоянной частью этой даты.If date1 or date2 is a date literal, the specified year becomes a permanent part of that date. Однако если аргумент дата1 или дата2 заключен в двойные кавычки (" "), а год опущен, при каждом вычислении выражения дата1 или дата2 в код вставляется текущий год.However, if date1 or date2 is enclosed in double quotation marks (" "), and you omit the year, the current year is inserted in your code each time the date1 or date2 expression is evaluated. Это позволяет писать код, который можно использовать для разных лет.This makes it possible to write code that can be used in different years.

При сравнении 31 декабря с 1 января следующего года функция DateDiff для года ("yyyy") возвращает значение 1, не смотря на то, что разница составляет всего один день.When comparing December 31 to January 1 of the immediately succeeding year, DateDiff for Year ("yyyy") returns 1 even though only a day has elapsed.

Примечание

Если в свойстве Calendar задан григорианский календарь, аргументы дата1 и дата2 следует указывать соответствующим образом.For date1 and date2, if the Calendar property setting is Gregorian, the supplied date must be Gregorian. Если используется календарь Хиджра, дата должна соответствовать ему.If the calendar is Hijri, the supplied date must be Hijri.

ПримерExample

В данном примере функция DateDiff отображает число дней между указанной датой и сегодняшним днем.This example uses the DateDiff function to display the number of days between a given date and today.

Dim TheDate As Date    ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.