DateAndTime.DateDiff Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca wartość określającą liczbę interwałów czasu między dwiema Date
wartościami.
Przeciążenia
DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear) |
Odejmuje |
DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear) |
Odejmuje |
DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)
- Źródło:
- DateAndTime.vb
- Źródło:
- DateAndTime.vb
- Źródło:
- DateAndTime.vb
Odejmuje Date1
od , Date2
aby podać długą wartość określającą liczbę interwałów czasu między dwiema Date
wartościami.
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
Parametry
- Interval
- DateInterval
Wymagane. DateInterval Wartość wyliczenia lub wyrażenie ciągu reprezentujące interwał czasu, którego chcesz użyć jako jednostki różnicy między Date1
i Date2
.
- Date1
- DateTime
Wymagane. Pierwsza wartość daty/godziny, której chcesz użyć w obliczeniu.
- Date2
- DateTime
Wymagane. Druga wartość daty/godziny, której chcesz użyć w obliczeniu.
- DayOfWeek
- FirstDayOfWeek
Opcjonalny. Wartość wybrana z wyliczenia FirstDayOfWeek , która określa pierwszy dzień tygodnia. Jeśli nie zostanie określony, Sunday zostanie użyty.
- WeekOfYear
- FirstWeekOfYear
Opcjonalny. Wartość wybrana z wyliczenia FirstWeekOfYear , która określa pierwszy tydzień roku. Jeśli nie zostanie określony, Jan1 zostanie użyty.
Zwraca
Długa wartość określająca liczbę interwałów czasu między dwiema Date
wartościami.
Wyjątki
Date1
, Date2
lub DayofWeek
jest poza zakresem.
Date1
lub Date2
jest nieprawidłowym typem.
Przykłady
W tym przykładzie DateDiff
użyto funkcji , aby wyświetlić liczbę dni między daną datą a dzisiaj.
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
Uwagi
Za pomocą DateDiff
funkcji można określić, ile określonych interwałów czasu istnieje między dwiema wartościami daty/godziny. Na przykład możesz użyć DateDiff
polecenia , aby obliczyć liczbę dni między dwiema datami lub liczbę tygodni między dniem dzisiejszym a końcem roku.
Zachowanie
Leczenie parametrów.
DateDiff
odejmuje wartośćDate1
z wartości ,Date2
aby wygenerować różnicę. Żadna wartość nie jest zmieniana w programie wywołującym.Zwracane wartości. Ponieważ
Date1
iDate2
sąDate
typu danych, przechowują wartości daty i godziny dokładne dla 100 nanosekund na czasomierzu systemowym.DateDiff
Jednak zawsze zwraca liczbę interwałów czasu jakoLong
wartość.Jeśli
Date1
reprezentuje późniejszą datę i godzinę niżDate2
,DateDiff
zwraca liczbę ujemną.Interwały dni. Jeśli
Interval
jest ustawiona wartośćDateInterval.DayOfYear
, jest traktowana tak samo jakDateInterval.Day
, ponieważDayOfYear
nie jest znaczącą jednostką dla interwału czasu.Interwały tygodnia. Jeśli
Interval
ustawionoDateInterval.WeekOfYear
wartość , wartość zwracana reprezentuje liczbę tygodni między pierwszym dniem tygodnia zawierającymDate1
i pierwszym dniem tygodnia zawierającymDate2
. W poniższym przykładzie pokazano, jak to generuje różne wyniki zDateInterval.Weekday
elementu .' 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)
W poprzednim przykładzie zwraca wartość 0,
DateDiff
wD
ponieważ różnica między dwiema datami jest mniejsza niż siedem dni, ale zwraca wartość 1,wY
ponieważ istnieje siedem dni różnicy między pierwszymi dniami odpowiednich tygodni kalendarzowych.Większe interwały. Jeśli
Interval
ustawionoDateInterval.Year
wartość , zwracana wartość jest obliczana wyłącznie z częściDate1
roku iDate2
. Podobnie wartość zwracana dlaDateInterval.Month
elementu jest obliczana wyłącznie z części roku i miesiąca argumentów orazDateInterval.Quarter
z kwartałów zawierających dwie daty.Na przykład podczas porównywania z dniem 31 grudnia do 1 stycznia następnego roku
DateDiff
zwraca wartość 1 dlaDateInterval.Year
wartości ,DateInterval.Quarter
lubDateInterval.Month
, nawet jeśli upłynął co najwyżej jeden dzień.W przypadku kultur, takich jak Japoński, które mają wiele epok, metoda nie zwraca różnicy w latach,
DateDiff
jeśli różnica obejmuje co najmniej dwie epoki. Zamiast tego można obliczyć różnicę wartości zwracanych przez Year właściwość, jak pokazano w poniższym przykładzie:date2.Year - date1.Year
.Inne interwały. Ponieważ każda
Date
wartość jest obsługiwana DateTime przez strukturę, jej metody zapewniają dodatkowe opcje w wyszukiwaniu interwałów czasu. Można na przykład użyćSubtract
metody w jednym z przeciążonych formularzy: DateTime.Subtract odejmuje wartość od zmiennejDate
, aby zwrócić innąDate
wartość, i DateTime.Subtract odejmujeDate
TimeSpan wartość, aby zwrócić TimeSpanwartość . Możesz czas procesu, aby dowiedzieć się, ile milisekund zajmuje, jak pokazano w poniższym przykładzie.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
Argument Interval
może mieć jedno z następujących ustawień.
Wartość wyliczenia | Wartość ciągu | Jednostka różnicy czasu |
---|---|---|
DateInterval.Day |
„d” | Dzień |
DateInterval.DayOfYear |
„y” | Dzień |
DateInterval.Hour |
„h” | Godzina |
DateInterval.Minute |
"n" | Minuta |
DateInterval.Month |
„m” | Month (Miesiąc) |
DateInterval.Quarter |
"q" | Quarter (Kwartał) |
DateInterval.Second |
„s” | Second |
DateInterval.Weekday |
„w” | Tydzień |
DateInterval.WeekOfYear |
"ww" | Tydzień kalendarzowy |
DateInterval.Year |
„yyyy” | Year (Rok) |
Argument DayOfWeek
może mieć jedno z następujących ustawień.
Wartość wyliczenia | Wartość | Opis |
---|---|---|
FirstDayOfWeek.System |
0 | Pierwszy dzień tygodnia określony w ustawieniach systemowych |
FirstDayOfWeek.Sunday |
1 | Niedziela (domyślnie) |
FirstDayOfWeek.Monday |
2 | Poniedziałek (zgodne ze standardem ISO 8601, pkt. 3.17) |
FirstDayOfWeek.Tuesday |
3 | Tuesday |
FirstDayOfWeek.Wednesday |
4 | Środa |
FirstDayOfWeek.Thursday |
5 | Thursday |
FirstDayOfWeek.Friday |
6 | Piątek |
FirstDayOfWeek.Saturday |
7 | Sobota |
Argument WeekOfYear
może mieć jedno z następujących ustawień.
Wartość wyliczenia | Wartość | Opis |
---|---|---|
FirstWeekOfYear.System |
0 | Pierwszy tydzień roku określony w ustawieniach systemowych |
FirstWeekOfYear.Jan1 |
1 | Tydzień zawierający dzień 1 stycznia (domyślnie) |
FirstWeekOfYear.FirstFourDays |
2 | Tydzień, który ma co najmniej cztery dni w nowym roku (zgodnie ze standardem ISO 8601, pkt. 3.17) |
FirstWeekOfYear.FirstFullWeek |
3 | Pierwszy pełny tydzień w nowym roku |
Zobacz też
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Typ danych — Podsumowanie (Visual Basic)
Dotyczy
DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)
- Źródło:
- DateAndTime.vb
- Źródło:
- DateAndTime.vb
- Źródło:
- DateAndTime.vb
Odejmuje Date1
od , Date2
aby podać długą wartość określającą liczbę interwałów czasu między dwiema Date
wartościami.
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
Parametry
- Interval
- String
Wymagane. DateInterval Wartość wyliczenia lub wyrażenie ciągu reprezentujące interwał czasu, którego chcesz użyć jako jednostki różnicy między Date1
i Date2
.
- Date1
- Object
Wymagane. Pierwsza wartość daty/godziny, której chcesz użyć w obliczeniu.
- Date2
- Object
Wymagane. Druga wartość daty/godziny, której chcesz użyć w obliczeniu.
- DayOfWeek
- FirstDayOfWeek
Opcjonalny. Wartość wybrana z wyliczenia FirstDayOfWeek , która określa pierwszy dzień tygodnia. Jeśli nie zostanie określony, Sunday zostanie użyty.
- WeekOfYear
- FirstWeekOfYear
Opcjonalny. Wartość wybrana z wyliczenia FirstWeekOfYear , która określa pierwszy tydzień roku. Jeśli nie zostanie określony, Jan1 zostanie użyty.
Zwraca
Długa wartość określająca liczbę interwałów czasu między dwiema Date
wartościami.
Wyjątki
Date1
, Date2
lub DayofWeek
jest poza zakresem.
Date1
lub Date2
jest nieprawidłowym typem.
Przykłady
W tym przykładzie DateDiff
użyto funkcji , aby wyświetlić liczbę dni między daną datą a dzisiaj.
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
Uwagi
Za pomocą DateDiff
funkcji można określić, ile określonych interwałów czasu istnieje między dwiema wartościami daty/godziny. Na przykład możesz użyć DateDiff
polecenia , aby obliczyć liczbę dni między dwiema datami lub liczbę tygodni między dniem dzisiejszym a końcem roku.
Zachowanie
Leczenie parametrów.
DateDiff
odejmuje wartośćDate1
z wartości ,Date2
aby wygenerować różnicę. Żadna wartość nie jest zmieniana w programie wywołującym.Zwracane wartości. Ponieważ
Date1
iDate2
sąDate
typu danych, przechowują wartości daty i godziny dokładne dla 100 nanosekund na czasomierzu systemowym.DateDiff
Jednak zawsze zwraca liczbę interwałów czasu jakoLong
wartość.Jeśli
Date1
reprezentuje późniejszą datę i godzinę niżDate2
,DateDiff
zwraca liczbę ujemną.Interwały dni. Jeśli
Interval
jest ustawiona wartośćDateInterval.DayOfYear
, jest traktowana tak samo jakDateInterval.Day
, ponieważDayOfYear
nie jest znaczącą jednostką dla interwału czasu.Interwały tygodnia. Jeśli
Interval
ustawionoDateInterval.WeekOfYear
wartość , wartość zwracana reprezentuje liczbę tygodni między pierwszym dniem tygodnia zawierającymDate1
i pierwszym dniem tygodnia zawierającymDate2
. W poniższym przykładzie pokazano, jak to generuje różne wyniki zDateInterval.Weekday
elementu .' 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)
W poprzednim przykładzie zwraca wartość 0,
DateDiff
wD
ponieważ różnica między dwiema datami jest mniejsza niż siedem dni, ale zwraca wartość 1,wY
ponieważ istnieje siedem dni różnicy między pierwszymi dniami odpowiednich tygodni kalendarzowych.Większe interwały. Jeśli
Interval
ustawionoDateInterval.Year
wartość , zwracana wartość jest obliczana wyłącznie z częściDate1
roku iDate2
. Podobnie wartość zwracana dlaDateInterval.Month
elementu jest obliczana wyłącznie z części roku i miesiąca argumentów orazDateInterval.Quarter
z kwartałów zawierających dwie daty.Na przykład podczas porównywania z dniem 31 grudnia do 1 stycznia następnego roku
DateDiff
zwraca wartość 1 dlaDateInterval.Year
wartości ,DateInterval.Quarter
lubDateInterval.Month
, nawet jeśli upłynął co najwyżej jeden dzień.W przypadku kultur, takich jak Japoński, które mają wiele epok, metoda nie zwraca różnicy w latach,
DateDiff
jeśli różnica obejmuje co najmniej dwie epoki. Zamiast tego można obliczyć różnicę wartości zwracanych przez Year właściwość, jak pokazano w poniższym przykładzie:date2.Year - date1.Year
.Inne interwały. Ponieważ każda
Date
wartość jest obsługiwana DateTime przez strukturę, jej metody zapewniają dodatkowe opcje w wyszukiwaniu interwałów czasu. Można na przykład użyćSubtract
metody w jednym z przeciążonych formularzy: DateTime.Subtract odejmuje wartość od zmiennejDate
, aby zwrócić innąDate
wartość, i DateTime.Subtract odejmujeDate
TimeSpan wartość, aby zwrócić TimeSpanwartość . Możesz czas procesu, aby dowiedzieć się, ile milisekund zajmuje, jak pokazano w poniższym przykładzie.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
Argument Interval
może mieć jedno z następujących ustawień.
Wartość wyliczenia | Wartość ciągu | Jednostka różnicy czasu |
---|---|---|
DateInterval.Day |
„d” | Dzień |
DateInterval.DayOfYear |
„y” | Dzień |
DateInterval.Hour |
„h” | Godzina |
DateInterval.Minute |
"n" | Minuta |
DateInterval.Month |
„m” | Month (Miesiąc) |
DateInterval.Quarter |
"q" | Quarter (Kwartał) |
DateInterval.Second |
„s” | Second |
DateInterval.Weekday |
„w” | Tydzień |
DateInterval.WeekOfYear |
"ww" | Tydzień kalendarzowy |
DateInterval.Year |
„yyyy” | Year (Rok) |
Argument DayOfWeek
może mieć jedno z następujących ustawień.
Wartość wyliczenia | Wartość | Opis |
---|---|---|
FirstDayOfWeek.System |
0 | Pierwszy dzień tygodnia określony w ustawieniach systemowych |
FirstDayOfWeek.Sunday |
1 | Niedziela (domyślnie) |
FirstDayOfWeek.Monday |
2 | Poniedziałek (zgodne ze standardem ISO 8601, pkt. 3.17) |
FirstDayOfWeek.Tuesday |
3 | Tuesday |
FirstDayOfWeek.Wednesday |
4 | Środa |
FirstDayOfWeek.Thursday |
5 | Thursday |
FirstDayOfWeek.Friday |
6 | Piątek |
FirstDayOfWeek.Saturday |
7 | Sobota |
Argument WeekOfYear
może mieć jedno z następujących ustawień.
Wartość wyliczenia | Wartość | Opis |
---|---|---|
FirstWeekOfYear.System |
0 | Pierwszy tydzień roku określony w ustawieniach systemowych |
FirstWeekOfYear.Jan1 |
1 | Tydzień zawierający dzień 1 stycznia (domyślnie) |
FirstWeekOfYear.FirstFourDays |
2 | Tydzień, który ma co najmniej cztery dni w nowym roku (zgodnie ze standardem ISO 8601, pkt. 3.17) |
FirstWeekOfYear.FirstFullWeek |
3 | Pierwszy pełny tydzień w nowym roku |
Zobacz też
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Typ danych — Podsumowanie (Visual Basic)
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla