Freigeben über


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 anzugeben, 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 anzugeben, 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 darstellt, das Sie als Differenzeinheit zwischen Date1 und Date2verwenden möchten.

Date1
DateTime

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

Date2
DateTime

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

DayOfWeek
FirstDayOfWeek

Wahlfrei. Ein wert, der aus der FirstDayOfWeek-Aufzählung ausgewählt wird, die den ersten Tag der Woche angibt. Wenn nicht angegeben, wird Sunday verwendet.

WeekOfYear
FirstWeekOfYear

Wahlfrei. Ein Wert, der aus der FirstWeekOfYear-Aufzählung ausgewählt wird, die die erste Woche des Jahres angibt. Wenn nicht angegeben, wird Jan1 verwendet.

Gibt zurück

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

Ausnahmen

Date1, Date2oder DayofWeek liegt außerhalb des Bereichs.

Date1 oder Date2 ist ungültig.

Beispiele

In diesem Beispiel wird die funktion DateDiff 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

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

Benehmen

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

  • Rückgabewerte. Da Date1 und Date2 den Date Datentyp aufweisen, halten sie Datums- und Uhrzeitwerte auf 100-Nanosekunden-Ticks auf dem Systemtimer fest. DateDiff gibt jedoch immer die Anzahl der Zeitintervalle als Long Wert zurück.

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

  • Tagesintervalle. Wenn Interval auf DateInterval.DayOfYearfestgelegt ist, wird sie wie DateInterval.Daybehandelt, 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 dar, der Date1 enthält, und dem ersten Tag der Woche, der Date2enthält. Das folgende Beispiel zeigt, wie dies unterschiedliche Ergebnisse von DateInterval.Weekdayerzeugt.

    ' 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 DateDiff 0 bis wD zurück, da die Differenz 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 besteht.

  • Größere Intervalle. Wenn Interval auf DateInterval.Yearfestgelegt ist, wird der Rückgabewert rein aus den Jahresteilen Date1 und Date2berechnet. Ebenso wird der Rückgabewert für DateInterval.Month rein aus den Argumenten Jahr und Monat berechnet, und für DateInterval.Quarter aus den Quartalen, die die beiden Datumswerte enthalten.

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

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

  • Andere Intervalle. Da jeder Date Wert von einer DateTime Struktur unterstützt wird, bieten ihnen die Methoden zusätzliche Optionen beim Auffinden 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 einen Date Wert subtrahiert, um einen TimeSpanzurückzugeben. Sie können einen Prozess zeitieren, um herauszufinden, wie viele Millisekunden es 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 argument Interval kann eine der folgenden Einstellungen haben.

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

Das argument DayOfWeek kann eine der folgenden Einstellungen haben.

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

Das argument WeekOfYear kann eine der folgenden Einstellungen haben.

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 eintritt (Standard)
FirstWeekOfYear.FirstFourDays 2 Woche mit mindestens vier Tagen im neuen Jahr (entspricht dem ISO-Standard 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 anzugeben, 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 darstellt, das Sie als Differenzeinheit zwischen Date1 und Date2verwenden möchten.

Date1
Object

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

Date2
Object

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

DayOfWeek
FirstDayOfWeek

Wahlfrei. Ein wert, der aus der FirstDayOfWeek-Aufzählung ausgewählt wird, die den ersten Tag der Woche angibt. Wenn nicht angegeben, wird Sunday verwendet.

WeekOfYear
FirstWeekOfYear

Wahlfrei. Ein Wert, der aus der FirstWeekOfYear-Aufzählung ausgewählt wird, die die erste Woche des Jahres angibt. Wenn nicht angegeben, wird Jan1 verwendet.

Gibt zurück

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

Ausnahmen

Date1, Date2oder DayofWeek liegt außerhalb des Bereichs.

Date1 oder Date2 ist ungültig.

Beispiele

In diesem Beispiel wird die funktion DateDiff 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

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

Benehmen

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

  • Rückgabewerte. Da Date1 und Date2 den Date Datentyp aufweisen, halten sie Datums- und Uhrzeitwerte auf 100-Nanosekunden-Ticks auf dem Systemtimer fest. DateDiff gibt jedoch immer die Anzahl der Zeitintervalle als Long Wert zurück.

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

  • Tagesintervalle. Wenn Interval auf DateInterval.DayOfYearfestgelegt ist, wird sie wie DateInterval.Daybehandelt, 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 dar, der Date1 enthält, und dem ersten Tag der Woche, der Date2enthält. Das folgende Beispiel zeigt, wie dies unterschiedliche Ergebnisse von DateInterval.Weekdayerzeugt.

    ' 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 DateDiff 0 bis wD zurück, da die Differenz 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 besteht.

  • Größere Intervalle. Wenn Interval auf DateInterval.Yearfestgelegt ist, wird der Rückgabewert rein aus den Jahresteilen Date1 und Date2berechnet. Ebenso wird der Rückgabewert für DateInterval.Month rein aus den Argumenten Jahr und Monat berechnet, und für DateInterval.Quarter aus den Quartalen, die die beiden Datumswerte enthalten.

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

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

  • Andere Intervalle. Da jeder Date Wert von einer DateTime Struktur unterstützt wird, bieten ihnen die Methoden zusätzliche Optionen beim Auffinden 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 einen Date Wert subtrahiert, um einen TimeSpanzurückzugeben. Sie können einen Prozess zeitieren, um herauszufinden, wie viele Millisekunden es 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 argument Interval kann eine der folgenden Einstellungen haben.

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

Das argument DayOfWeek kann eine der folgenden Einstellungen haben.

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

Das argument WeekOfYear kann eine der folgenden Einstellungen haben.

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 eintritt (Standard)
FirstWeekOfYear.FirstFourDays 2 Woche mit mindestens vier Tagen im neuen Jahr (entspricht dem ISO-Standard 8601, Abschnitt 3.17)
FirstWeekOfYear.FirstFullWeek 3 Erste volle Woche im neuen Jahr

Weitere Informationen

Gilt für: