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
- Исходный код:
- 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Вычитает значение из значенияDate1Date2для получения разницы. Ни значение не изменяется в вызывающей программе.Возвращаемые значения. Так как
Date1ониDate2имеютDateтип данных, они содержат точные значения даты и времени до 100-наносекунд на системном таймере.DateDiffОднако всегда возвращает количество интервалов времени в качествеLongзначения.Если
Date1представляется более поздняя дата и время, чемDate2,DateDiffвозвращает отрицательное число.Интервалы дня. Если
Intervalзадано значениеDateInterval.DayOfYear, он обрабатывается так же, как и , так какDateInterval.DayDayOfYearне является значимым единицей для интервала времени.Интервалы недели. Если
Intervalзадано значениеDateInterval.WeekOfYear, возвращаемое значение представляет количество недель между первым днем недели, содержащей и первым днем недели, содержащейDate1Date2. В следующем примере показано, как это приводит к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возвращается значение 0wD, так как разница между двумя датами меньше семи дней, но возвращается 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
- Исходный код:
- 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Вычитает значение из значенияDate1Date2для получения разницы. Ни значение не изменяется в вызывающей программе.Возвращаемые значения. Так как
Date1ониDate2имеютDateтип данных, они содержат точные значения даты и времени до 100-наносекунд на системном таймере.DateDiffОднако всегда возвращает количество интервалов времени в качествеLongзначения.Если
Date1представляется более поздняя дата и время, чемDate2,DateDiffвозвращает отрицательное число.Интервалы дня. Если
Intervalзадано значениеDateInterval.DayOfYear, он обрабатывается так же, как и , так какDateInterval.DayDayOfYearне является значимым единицей для интервала времени.Интервалы недели. Если
Intervalзадано значениеDateInterval.WeekOfYear, возвращаемое значение представляет количество недель между первым днем недели, содержащей и первым днем недели, содержащейDate1Date2. В следующем примере показано, как это приводит к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возвращается значение 0wD, так как разница между двумя датами меньше семи дней, но возвращается 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)