DateAndTime.DateDiff Methode

Definition

Gibt einen Wert zurück, der die Anzahl der Zeitintervalle zwischen zwei Date-Werten angibt.

Überlädt

DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)

Subtrahiert Date1 von Date2 , um einen langen Wert zu erhalten, der die Anzahl der Zeitintervalle zwischen den beiden Date Werten angibt.

DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)

Subtrahiert Date1 von Date2 , um einen langen Wert zu erhalten, der die Anzahl der Zeitintervalle zwischen den beiden Date Werten angibt.

DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)

Quelle:
DateAndTime.vb
Quelle:
DateAndTime.vb
Quelle:
DateAndTime.vb

Subtrahiert Date1 von Date2 , um einen langen Wert anzugeben, der die Anzahl der Zeitintervalle zwischen den beiden Date Werten angibt.

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

Parameter

Interval
DateInterval

Erforderlich. Ein DateInterval-Enumerationswert oder ein Zeichenfolgenausdruck, der das Zeitintervall angibt, das Sie als Einheit für die Differenz zwischen Date1 und Date2 verwenden möchten.

Date1
DateTime

Erforderlich. Der erste Datums-/Zeitwert, den Sie bei der Berechnung verwenden möchten.

Date2
DateTime

Erforderlich. Der zweite Datums-/Zeitwert, den Sie bei der Berechnung verwenden möchten.

DayOfWeek
FirstDayOfWeek

Dies ist optional. Ein Wert aus der FirstDayOfWeek-Enumeration, der den ersten Tag der Woche angibt. Wenn dieser nicht angegeben wurde, wird Sunday verwendet.

WeekOfYear
FirstWeekOfYear

Dies ist optional. Ein Wert aus der FirstWeekOfYear-Enumeration, der die erste Woche des Jahres angibt. Wenn dieser nicht angegeben wurde, wird Jan1 verwendet.

Gibt zurück

Ein Long-Wert, der die Anzahl der Zeitintervalle zwischen zwei Date-Werten angibt.

Ausnahmen

Date1, Date2 oder DayofWeek liegt außerhalb des Bereichs.

Date1 oder Date2 hat einen ungültigen Typ.

Beispiele

In diesem Beispiel wird die DateDiff Funktion verwendet, um die Anzahl der Tage zwischen einem bestimmten Datum und heute anzuzeigen.

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

Hinweise

Sie können die DateDiff Funktion verwenden, um zu bestimmen, wie viele angegebene Zeitintervalle zwischen zwei Datums-/Uhrzeitwerten vorhanden sind. Sie können DateDiff beispielsweise verwenden, um die Anzahl der Tage zwischen zwei Datumsangaben oder die Anzahl der Wochen zwischen heute und dem Ende des Jahres zu berechnen.

Verhalten

  • Behandlung von Parametern. DateDiff subtrahiert den Wert von Date1 vom Wert von Date2 , um die Differenz zu erzeugen. Keiner der Werte wird im aufrufenden Programm geändert.

  • Gibt Werte zurück. Da Date1 und Date2 vom Datentyp sind, enthalten sie Datums- und Uhrzeitwerte, die Date auf 100 Nanosekunden-Ticks auf dem Systemtimer genau sind. Gibt jedoch DateDiff immer die Anzahl von Zeitintervallen als Wert zurück Long .

    Wenn Date1 ein späteres Datum und eine spätere Uhrzeit Date2als darstellt, DateDiff wird eine negative Zahl zurückgegeben.

  • Tagesintervalle. Wenn Interval auf DateInterval.DayOfYearfestgelegt ist, wird es gleich behandelt wie DateInterval.Day, da DayOfYear es sich nicht um eine aussagekräftige Einheit für ein Zeitintervall handelt.

  • Wochenintervalle. Wenn Interval auf DateInterval.WeekOfYearfestgelegt ist, stellt der Rückgabewert die Anzahl der Wochen zwischen dem ersten Wochentag mit Date1 und dem ersten Wochentag dar, der enthält Date2. Das folgende Beispiel zeigt, wie dadurch unterschiedliche Ergebnisse von erzeugt werden 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)
    

    Im vorherigen Beispiel gibt 0 bis wD zurück, DateDiff da der Unterschied zwischen den beiden Datumsangaben weniger als sieben Tage beträgt, aber 1 bis wY zurückgegeben wird, da zwischen den ersten Tagen der jeweiligen Kalenderwochen ein Unterschied von sieben Tagen besteht.

  • Größere Intervalle. Wenn Interval auf DateInterval.Yearfestgelegt ist, wird der Rückgabewert ausschließlich aus den Jahresteilen von Date1 und Date2berechnet. Ebenso wird der Rückgabewert für DateInterval.Month ausschließlich aus den Jahres- und Monatsteilen der Argumente und für DateInterval.Quarter aus den Quartalen berechnet, die die beiden Datumsangaben enthalten.

    Wenn Sie beispielsweise den 31. Dezember mit dem 1. Januar des folgenden Jahres vergleichen, gibt 1 für DateInterval.Year, DateInterval.Quarteroder DateInterval.Monthzurück, DateDiff obwohl höchstens nur ein Tag verstrichen ist.

    Für Kulturen wie Japaner, die mehrere Epochen haben, gibt die DateDiff Methode keinen Unterschied in Jahren zurück, wenn der Unterschied zwei oder mehr Epochen umfasst. Stattdessen können Sie die Differenz der von der Year -Eigenschaft zurückgegebenen Werte berechnen, wie im folgenden Beispiel gezeigt: date2.Year - date1.Year.

  • Andere Intervalle. Da jeder Date Wert von einer DateTime Struktur unterstützt wird, bieten ihnen deren Methoden zusätzliche Optionen beim Suchen von Zeitintervallen. Beispielsweise können Sie die Subtract -Methode in einer der überladenen Formen verwenden: DateTime.Subtract Subtrahiert eine TimeSpan von einer Date Variablen, um einen anderen Date Wert zurückzugeben, und DateTime.Subtract subtrahiert einen Date Wert, um einen TimeSpanzurückzugeben. Sie können einen Prozess zeitieren, um herauszufinden, wie viele Millisekunden benötigt werden, wie das folgende Beispiel zeigt.

    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
    

Das Interval Argument kann über eine der folgenden Einstellungen verfügen.

Enumerationswert Zeichenfolgenwert Einheit der Zeitdifferenz
DateInterval.Day "d" Tag
DateInterval.DayOfYear "y" Tag
DateInterval.Hour "h" Stunde
DateInterval.Minute "n" Minute
DateInterval.Month "m" Month (Monat)
DateInterval.Quarter "q" Quarter
DateInterval.Second "s" Second
DateInterval.Weekday "w" Woche
DateInterval.WeekOfYear "ww" Kalenderwoche
DateInterval.Year "yyyy" Year

Das DayOfWeek Argument kann über eine der folgenden Einstellungen verfügen.

Enumerationswert Wert BESCHREIBUNG
FirstDayOfWeek.System 0 Erster Wochentag, der in den Systemeinstellungen angegeben ist
FirstDayOfWeek.Sunday 1 Sonntag (Standard)
FirstDayOfWeek.Monday 2 Montag (entspricht ISO-Norm 8601, Abschnitt 3.17)
FirstDayOfWeek.Tuesday 3 Tuesday
FirstDayOfWeek.Wednesday 4 Wednesday
FirstDayOfWeek.Thursday 5 Thursday
FirstDayOfWeek.Friday 6 Freitag
FirstDayOfWeek.Saturday 7 Samstag

Das WeekOfYear Argument kann über eine der folgenden Einstellungen verfügen.

Enumerationswert Wert BESCHREIBUNG
FirstWeekOfYear.System 0 Erste Woche des Jahres, die in den Systemeinstellungen angegeben ist
FirstWeekOfYear.Jan1 1 Woche, in der der 1. Januar auftritt (Standard)
FirstWeekOfYear.FirstFourDays 2 Woche mit mindestens vier Tagen im neuen Jahr (entspricht ISO-Norm 8601, Abschnitt 3.17)
FirstWeekOfYear.FirstFullWeek 3 Erste volle Woche im neuen Jahr

Weitere Informationen

Gilt für:

DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)

Quelle:
DateAndTime.vb
Quelle:
DateAndTime.vb
Quelle:
DateAndTime.vb

Subtrahiert Date1 von Date2 , um einen langen Wert zu erhalten, der die Anzahl der Zeitintervalle zwischen den beiden Date Werten angibt.

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

Parameter

Interval
String

Erforderlich. Ein DateInterval-Enumerationswert oder ein Zeichenfolgenausdruck, der das Zeitintervall angibt, das Sie als Einheit für die Differenz zwischen Date1 und Date2 verwenden möchten.

Date1
Object

Erforderlich. Der erste Datums-/Zeitwert, den Sie bei der Berechnung verwenden möchten.

Date2
Object

Erforderlich. Der zweite Datums-/Zeitwert, den Sie bei der Berechnung verwenden möchten.

DayOfWeek
FirstDayOfWeek

Dies ist optional. Ein Wert aus der FirstDayOfWeek-Enumeration, der den ersten Tag der Woche angibt. Wenn dieser nicht angegeben wurde, wird Sunday verwendet.

WeekOfYear
FirstWeekOfYear

Dies ist optional. Ein Wert aus der FirstWeekOfYear-Enumeration, der die erste Woche des Jahres angibt. Wenn dieser nicht angegeben wurde, wird Jan1 verwendet.

Gibt zurück

Ein Long-Wert, der die Anzahl der Zeitintervalle zwischen zwei Date-Werten angibt.

Ausnahmen

Date1, Date2 oder DayofWeek liegt außerhalb des Bereichs.

Date1 oder Date2 hat einen ungültigen Typ.

Beispiele

In diesem Beispiel wird die DateDiff -Funktion verwendet, um die Anzahl der Tage zwischen einem bestimmten Datum und heute anzuzeigen.

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

Hinweise

Sie können die DateDiff -Funktion verwenden, um zu bestimmen, wie viele angegebene Zeitintervalle zwischen zwei Datums-/Uhrzeitwerten vorhanden sind. Sie können beispielsweise verwenden DateDiff , um die Anzahl der Tage zwischen zwei Datumsangaben oder die Anzahl der Wochen zwischen heute und dem Ende des Jahres zu berechnen.

Verhalten

  • Behandlung von Parametern. DateDiff subtrahiert den Wert von Date1 vom Wert von Date2 , um die Differenz zu erzeugen. Keiner der Werte wird im aufrufenden Programm geändert.

  • Rückgabewerte. Da Date1 und Date2 vom Date Datentyp sind, enthalten sie Datums- und Uhrzeitwerte, die auf 100 Nanosekunden-Ticks auf dem Systemtimer genau sind. Gibt jedoch DateDiff immer die Anzahl der Zeitintervalle als Wert zurück Long .

    Wenn Date1 ein späteres Datum und eine spätere Uhrzeit als Date2darstellt, DateDiff gibt eine negative Zahl zurück.

  • Tagesintervalle. Wenn Interval auf DateInterval.DayOfYearfestgelegt ist, wird es genauso behandelt wie DateInterval.Day, da DayOfYear für ein Zeitintervall keine sinnvolle Einheit ist.

  • Wochenintervalle. Wenn Interval auf DateInterval.WeekOfYearfestgelegt ist, stellt der Rückgabewert die Anzahl der Wochen zwischen dem ersten Tag der Woche mit Date1 und dem ersten Tag der Woche dar, der enthält Date2. Das folgende Beispiel zeigt, wie dadurch unterschiedliche Ergebnisse von erzeugt werden 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)
    

    Im vorherigen Beispiel gibt 0 bis zurück, DateDiff da der Unterschied zwischen den beiden Datumsangaben kleiner als sieben Tage ist, aber es wird 1 bis wY zurückgegeben, da zwischen den ersten Tagen der jeweiligen Kalenderwochen ein Sieben-Tage-Unterschied wD besteht.

  • Größere Intervalle. Wenn Interval auf DateInterval.Yearfestgelegt ist, wird der Rückgabewert ausschließlich aus den Jahresteilen von Date1 und Date2berechnet. Ebenso wird der Rückgabewert für DateInterval.Month ausschließlich aus den Jahres- und Monatsteilen der Argumente und für aus DateInterval.Quarter den Quartalen berechnet, die die beiden Datumsangaben enthalten.

    Wenn Sie beispielsweise den 31. Dezember mit dem 1. Januar des folgenden Jahres vergleichen, gibt 1 für DateInterval.Year, DateInterval.Quarteroder DateInterval.Monthzurück, DateDiff obwohl höchstens ein Tag abgelaufen ist.

    Für Kulturen wie Japanisch, die mehrere Epochen haben, gibt die DateDiff Methode keinen Unterschied in Jahren zurück, wenn der Unterschied zwei oder mehr Epochen umfasst. Stattdessen können Sie die Differenz der von der Year -Eigenschaft zurückgegebenen Werte berechnen, wie im folgenden Beispiel gezeigt: date2.Year - date1.Year.

  • Andere Intervalle. Da jeder Date Wert von einer DateTime -Struktur unterstützt wird, bieten die zugehörigen Methoden zusätzliche Optionen beim Auffinden von Zeitintervallen. Beispielsweise können Sie die Subtract -Methode in einer ihrer überladenen Formen verwenden: DateTime.Subtract subtrahiert ein TimeSpan von einer Date Variablen, um einen anderen Date Wert zurückzugeben, und DateTime.Subtract subtrahiert einen Date Wert, um zurückzugeben.TimeSpan Sie können einen Prozess mit einer Zeitdauer ermitteln, wie viele Millisekunden er benötigt, wie im folgenden Beispiel gezeigt.

    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
    

Das Interval Argument kann über eine der folgenden Einstellungen verfügen.

Enumerationswert Zeichenfolgenwert Zeiteinheit
DateInterval.Day "d" Tag
DateInterval.DayOfYear "y" Tag
DateInterval.Hour "h" Stunde
DateInterval.Minute "n" Minute
DateInterval.Month "m" Month (Monat)
DateInterval.Quarter "q" Quarter
DateInterval.Second "s" Second
DateInterval.Weekday "w" Woche
DateInterval.WeekOfYear "ww" Kalenderwoche
DateInterval.Year "yyyy" Year

Das DayOfWeek Argument kann über eine der folgenden Einstellungen verfügen.

Enumerationswert Wert BESCHREIBUNG
FirstDayOfWeek.System 0 Erster Wochentag, der in den Systemeinstellungen angegeben ist
FirstDayOfWeek.Sunday 1 Sonntag (Standard)
FirstDayOfWeek.Monday 2 Montag (entspricht ISO-Norm 8601, Abschnitt 3.17)
FirstDayOfWeek.Tuesday 3 Tuesday
FirstDayOfWeek.Wednesday 4 Wednesday
FirstDayOfWeek.Thursday 5 Thursday
FirstDayOfWeek.Friday 6 Freitag
FirstDayOfWeek.Saturday 7 Samstag

Das WeekOfYear Argument kann über eine der folgenden Einstellungen verfügen.

Enumerationswert Wert BESCHREIBUNG
FirstWeekOfYear.System 0 Erste Woche des Jahres, die in den Systemeinstellungen angegeben ist
FirstWeekOfYear.Jan1 1 Woche, in der der 1. Januar auftritt (Standard)
FirstWeekOfYear.FirstFourDays 2 Woche mit mindestens vier Tagen im neuen Jahr (entspricht ISO-Norm 8601, Abschnitt 3.17)
FirstWeekOfYear.FirstFullWeek 3 Erste volle Woche im neuen Jahr

Weitere Informationen

Gilt für: