DateAndTime.DateDiff Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение, указывающее количество интервалов времени между двумя значениями Date
.
Перегрузки
DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear) |
Вычитает |
DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear) |
Вычитает |
DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)
- Исходный код:
- DateAndTime.vb
- Исходный код:
- DateAndTime.vb
- Исходный код:
- DateAndTime.vb
Вычитает Date1
из Date2
, чтобы задать длинное значение, указывающее количество интервалов времени между двумя значениями Date
.
public static long DateDiff (Microsoft.VisualBasic.DateInterval Interval, DateTime Date1, DateTime Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
static member DateDiff : Microsoft.VisualBasic.DateInterval * DateTime * DateTime * Microsoft.VisualBasic.FirstDayOfWeek * Microsoft.VisualBasic.FirstWeekOfYear -> int64
Public Function DateDiff (Interval As DateInterval, Date1 As DateTime, Date2 As DateTime, Optional DayOfWeek As FirstDayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Optional WeekOfYear As FirstWeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1) As Long
Параметры
- Interval
- DateInterval
Обязательно. Значение перечисления DateInterval или строковое выражение, представляющее интервал времени, который необходимо использовать в качестве единицы разницы между Date1
и Date2
.
- Date1
- DateTime
Обязательно. Первое значение даты и времени, которое вы хотите использовать в вычислении.
- Date2
- DateTime
Обязательно. Второе значение даты и времени, которое вы хотите использовать в вычислении.
- DayOfWeek
- FirstDayOfWeek
Необязательный. Значение, выбранное из перечисления FirstDayOfWeek, указывающее первый день недели. Если это не указано, используется Sunday.
- WeekOfYear
- FirstWeekOfYear
Необязательный. Значение, выбранное из перечисления FirstWeekOfYear, указывающее первую неделю года. Если это не указано, используется Jan1.
Возвращаемое значение
Длинное значение, указывающее количество интервалов времени между двумя значениями Date
.
Исключения
Date1
, Date2
или DayofWeek
выходит за пределы диапазона.
Date1
или Date2
имеет недопустимый тип.
Примеры
В этом примере функция DateDiff
используется для отображения количества дней между заданной датой и сегодня.
Dim date2Entered As String = InputBox("Enter a date")
Try
Dim date2 As Date = Date.Parse(date2Entered)
Dim date1 As Date = Now
' Determine the number of days between the two dates.
Dim days As Long = DateDiff(DateInterval.Day, date1, date2)
' This statement has a string interval argument, and
' is equivalent to the above statement.
'Dim days As Long = DateDiff("d", date1, date2)
MessageBox.Show("Days from today: " & days.ToString)
Catch ex As Exception
MessageBox.Show("Invalid Date: " & ex.Message)
End Try
Комментарии
Функцию DateDiff
можно использовать для определения количества указанных интервалов времени между двумя значениями даты и времени. Например, можно использовать DateDiff
для вычисления количества дней между двумя датами или число недель между сегодня и окончанием года.
Поведение
Обработка параметров.
DateDiff
вычитает значениеDate1
из значенияDate2
для получения разницы. Ни значение не изменяется в вызывающей программе.Возвращаемые значения. Так как
Date1
иDate2
относятся к типу данныхDate
, они содержат точные значения даты и времени до 100-наносекунд на системном таймере. ОднакоDateDiff
всегда возвращает количество интервалов времени в качестве значенияLong
.Если
Date1
представляет более позднюю дату и время, чемDate2
,DateDiff
возвращает отрицательное число.Интервалы дня. Если
Interval
задано значениеDateInterval.DayOfYear
, он обрабатывается так же, как иDateInterval.Day
, так какDayOfYear
не является значимым единицей для интервала времени.Интервалы недели. Если
Interval
задано значениеDateInterval.WeekOfYear
, возвращаемое значение представляет количество недель между первым днем недели, содержащимDate1
, и первым днем недели, содержащейDate2
. В следующем примере показано, как это создает различные результаты отDateInterval.Weekday
.' The following statements set datTim1 to a Thursday ' and datTim2 to the following Tuesday. Dim datTim1 As Date = #1/4/2001# Dim datTim2 As Date = #1/9/2001# ' Assume Sunday is specified as first day of the week. Dim wD As Long = DateDiff(DateInterval.Weekday, datTim1, datTim2) Dim wY As Long = DateDiff(DateInterval.WeekOfYear, datTim1, datTim2)
В предыдущем примере
DateDiff
возвращает значение 0 кwD
, так как разница между двумя датами меньше семи дней, но возвращается 1 доwY
, так как между первыми днями соответствующих календарных недель разница между двумя днями.Большие интервалы. Если
Interval
задано значениеDateInterval.Year
, возвращаемое значение вычисляется исключительно из годовых частейDate1
иDate2
. Аналогичным образом возвращаемое значение дляDateInterval.Month
вычисляется исключительно из частей аргументов года и месяца, а также дляDateInterval.Quarter
из кварталов, содержащих две даты.Например, при сравнении 31 декабря с 1 января следующего года
DateDiff
возвращается 1 дляDateInterval.Year
,DateInterval.Quarter
илиDateInterval.Month
, хотя в большинстве случаев прошло всего один день.Для таких культур, как японский, который имеет несколько эпох, метод
DateDiff
не возвращает разницу в годах, если разница охватывает две или более эпохи. Вместо этого можно вычислить разницу значений, возвращаемых свойством Year, как показано в следующем примере:date2.Year - date1.Year
.Другие интервалы. Так как каждое
Date
значение поддерживается структурой DateTime, его методы предоставляют дополнительные параметры для поиска интервалов времени. Например, можно использовать методSubtract
в одной из перегруженных форм: DateTime.Subtract вычитает TimeSpan из переменнойDate
, чтобы вернуть другое значениеDate
, и DateTime.Subtract вычитает значениеDate
для возврата TimeSpan. Вы можете заставить процесс узнать, сколько миллисекунд требуется, как показано в следующем примере.Dim startTime As Date = Now ' Run the process that is to be timed. Dim runLength As Global.System.TimeSpan = Now.Subtract(startTime) Dim millisecs As Double = runLength.TotalMilliseconds
Аргумент Interval
может иметь один из следующих параметров.
Значение перечисления | Строковое значение | Единица времени |
---|---|---|
DateInterval.Day |
"d" | День |
DateInterval.DayOfYear |
"y" | День |
DateInterval.Hour |
"h" | Час |
DateInterval.Minute |
"n" | Минута |
DateInterval.Month |
"m" | Месяц |
DateInterval.Quarter |
"q" | Четверть |
DateInterval.Second |
"s" | Секунда |
DateInterval.Weekday |
"w" | Неделя |
DateInterval.WeekOfYear |
"ww" | Неделя календаря |
DateInterval.Year |
"гггг" | Год |
Аргумент DayOfWeek
может иметь один из следующих параметров.
Значение перечисления | Ценность | Описание |
---|---|---|
FirstDayOfWeek.System |
0 | Первый день недели, указанный в параметрах системы |
FirstDayOfWeek.Sunday |
1 | Воскресенье (по умолчанию) |
FirstDayOfWeek.Monday |
2 | Понедельник (соответствует стандарту ISO 8601, раздел 3.17) |
FirstDayOfWeek.Tuesday |
3 | Вторник |
FirstDayOfWeek.Wednesday |
4 | Среда |
FirstDayOfWeek.Thursday |
5 | Четверг |
FirstDayOfWeek.Friday |
6 | Пятница |
FirstDayOfWeek.Saturday |
7 | Суббота |
Аргумент WeekOfYear
может иметь один из следующих параметров.
Значение перечисления | Ценность | Описание |
---|---|---|
FirstWeekOfYear.System |
0 | Первая неделя года, указанная в параметрах системы |
FirstWeekOfYear.Jan1 |
1 | Неделя, в которой происходит 1 января (по умолчанию) |
FirstWeekOfYear.FirstFourDays |
2 | Неделя, которая имеет по крайней мере четыре дня в новом году (соответствует стандарту ISO 8601, раздел 3.17) |
FirstWeekOfYear.FirstFullWeek |
3 | Первая полная неделя в новом году |
См. также раздел
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Сводка по типу данных (Visual Basic)
Применяется к
DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)
- Исходный код:
- DateAndTime.vb
- Исходный код:
- DateAndTime.vb
- Исходный код:
- DateAndTime.vb
Вычитает Date1
из Date2
, чтобы задать длинное значение, указывающее количество интервалов времени между двумя значениями Date
.
public static long DateDiff (string Interval, object? Date1, object? Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
public static long DateDiff (string Interval, object Date1, object Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
static member DateDiff : string * obj * obj * Microsoft.VisualBasic.FirstDayOfWeek * Microsoft.VisualBasic.FirstWeekOfYear -> int64
Public Function DateDiff (Interval As String, Date1 As Object, Date2 As Object, Optional DayOfWeek As FirstDayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Optional WeekOfYear As FirstWeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1) As Long
Параметры
- Interval
- String
Обязательно. Значение перечисления DateInterval или строковое выражение, представляющее интервал времени, который необходимо использовать в качестве единицы разницы между Date1
и Date2
.
- Date1
- Object
Обязательно. Первое значение даты и времени, которое вы хотите использовать в вычислении.
- Date2
- Object
Обязательно. Второе значение даты и времени, которое вы хотите использовать в вычислении.
- DayOfWeek
- FirstDayOfWeek
Необязательный. Значение, выбранное из перечисления FirstDayOfWeek, указывающее первый день недели. Если это не указано, используется Sunday.
- WeekOfYear
- FirstWeekOfYear
Необязательный. Значение, выбранное из перечисления FirstWeekOfYear, указывающее первую неделю года. Если это не указано, используется Jan1.
Возвращаемое значение
Длинное значение, указывающее количество интервалов времени между двумя значениями Date
.
Исключения
Date1
, Date2
или DayofWeek
выходит за пределы диапазона.
Date1
или Date2
имеет недопустимый тип.
Примеры
В этом примере функция DateDiff
используется для отображения количества дней между заданной датой и сегодня.
Dim date2Entered As String = InputBox("Enter a date")
Try
Dim date2 As Date = Date.Parse(date2Entered)
Dim date1 As Date = Now
' Determine the number of days between the two dates.
Dim days As Long = DateDiff(DateInterval.Day, date1, date2)
' This statement has a string interval argument, and
' is equivalent to the above statement.
'Dim days As Long = DateDiff("d", date1, date2)
MessageBox.Show("Days from today: " & days.ToString)
Catch ex As Exception
MessageBox.Show("Invalid Date: " & ex.Message)
End Try
Комментарии
Функцию DateDiff
можно использовать для определения количества указанных интервалов времени между двумя значениями даты и времени. Например, можно использовать DateDiff
для вычисления количества дней между двумя датами или число недель между сегодня и окончанием года.
Поведение
Обработка параметров.
DateDiff
вычитает значениеDate1
из значенияDate2
для получения разницы. Ни значение не изменяется в вызывающей программе.Возвращаемые значения. Так как
Date1
иDate2
относятся к типу данныхDate
, они содержат точные значения даты и времени до 100-наносекунд на системном таймере. ОднакоDateDiff
всегда возвращает количество интервалов времени в качестве значенияLong
.Если
Date1
представляет более позднюю дату и время, чемDate2
,DateDiff
возвращает отрицательное число.Интервалы дня. Если
Interval
задано значениеDateInterval.DayOfYear
, он обрабатывается так же, как иDateInterval.Day
, так какDayOfYear
не является значимым единицей для интервала времени.Интервалы недели. Если
Interval
задано значениеDateInterval.WeekOfYear
, возвращаемое значение представляет количество недель между первым днем недели, содержащимDate1
, и первым днем недели, содержащейDate2
. В следующем примере показано, как это создает различные результаты отDateInterval.Weekday
.' The following statements set datTim1 to a Thursday ' and datTim2 to the following Tuesday. Dim datTim1 As Date = #1/4/2001# Dim datTim2 As Date = #1/9/2001# ' Assume Sunday is specified as first day of the week. Dim wD As Long = DateDiff(DateInterval.Weekday, datTim1, datTim2) Dim wY As Long = DateDiff(DateInterval.WeekOfYear, datTim1, datTim2)
В предыдущем примере
DateDiff
возвращает значение 0 кwD
, так как разница между двумя датами меньше семи дней, но возвращается 1 доwY
, так как между первыми днями соответствующих календарных недель разница между двумя днями.Большие интервалы. Если
Interval
задано значениеDateInterval.Year
, возвращаемое значение вычисляется исключительно из годовых частейDate1
иDate2
. Аналогичным образом возвращаемое значение дляDateInterval.Month
вычисляется исключительно из частей аргументов года и месяца, а также дляDateInterval.Quarter
из кварталов, содержащих две даты.Например, при сравнении 31 декабря с 1 января следующего года
DateDiff
возвращается 1 дляDateInterval.Year
,DateInterval.Quarter
илиDateInterval.Month
, хотя в большинстве случаев прошло всего один день.Для таких культур, как японский, который имеет несколько эпох, метод
DateDiff
не возвращает разницу в годах, если разница охватывает две или более эпохи. Вместо этого можно вычислить разницу значений, возвращаемых свойством Year, как показано в следующем примере:date2.Year - date1.Year
.Другие интервалы. Так как каждое
Date
значение поддерживается структурой DateTime, его методы предоставляют дополнительные параметры для поиска интервалов времени. Например, можно использовать методSubtract
в одной из перегруженных форм: DateTime.Subtract вычитает TimeSpan из переменнойDate
, чтобы вернуть другое значениеDate
, и DateTime.Subtract вычитает значениеDate
для возврата TimeSpan. Вы можете заставить процесс узнать, сколько миллисекунд требуется, как показано в следующем примере.Dim startTime As Date = Now ' Run the process that is to be timed. Dim runLength As Global.System.TimeSpan = Now.Subtract(startTime) Dim millisecs As Double = runLength.TotalMilliseconds
Аргумент Interval
может иметь один из следующих параметров.
Значение перечисления | Строковое значение | Единица времени |
---|---|---|
DateInterval.Day |
"d" | День |
DateInterval.DayOfYear |
"y" | День |
DateInterval.Hour |
"h" | Час |
DateInterval.Minute |
"n" | Минута |
DateInterval.Month |
"m" | Месяц |
DateInterval.Quarter |
"q" | Четверть |
DateInterval.Second |
"s" | Секунда |
DateInterval.Weekday |
"w" | Неделя |
DateInterval.WeekOfYear |
"ww" | Неделя календаря |
DateInterval.Year |
"гггг" | Год |
Аргумент DayOfWeek
может иметь один из следующих параметров.
Значение перечисления | Ценность | Описание |
---|---|---|
FirstDayOfWeek.System |
0 | Первый день недели, указанный в параметрах системы |
FirstDayOfWeek.Sunday |
1 | Воскресенье (по умолчанию) |
FirstDayOfWeek.Monday |
2 | Понедельник (соответствует стандарту ISO 8601, раздел 3.17) |
FirstDayOfWeek.Tuesday |
3 | Вторник |
FirstDayOfWeek.Wednesday |
4 | Среда |
FirstDayOfWeek.Thursday |
5 | Четверг |
FirstDayOfWeek.Friday |
6 | Пятница |
FirstDayOfWeek.Saturday |
7 | Суббота |
Аргумент WeekOfYear
может иметь один из следующих параметров.
Значение перечисления | Ценность | Описание |
---|---|---|
FirstWeekOfYear.System |
0 | Первая неделя года, указанная в параметрах системы |
FirstWeekOfYear.Jan1 |
1 | Неделя, в которой происходит 1 января (по умолчанию) |
FirstWeekOfYear.FirstFourDays |
2 | Неделя, которая имеет по крайней мере четыре дня в новом году (соответствует стандарту ISO 8601, раздел 3.17) |
FirstWeekOfYear.FirstFullWeek |
3 | Первая полная неделя в новом году |
См. также раздел
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Сводка по типу данных (Visual Basic)