Sdílet prostřednictvím


DateAndTime.DateDiff Metoda

Definice

Vrátí hodnotu určující počet časových intervalů mezi dvěma Date hodnotami.

Přetížení

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

Odečte Date1 od Date2 a poskytne dlouhou hodnotu určující počet časových intervalů mezi těmito dvěma hodnotami Date.

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

Odečte Date1 od Date2 a poskytne dlouhou hodnotu určující počet časových intervalů mezi těmito dvěma hodnotami Date.

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

Zdroj:
DateAndTime.vb
Zdroj:
DateAndTime.vb
Zdroj:
DateAndTime.vb

Odečte Date1 od Date2 a poskytne dlouhou hodnotu určující počet časových intervalů mezi těmito dvěma hodnotami 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

Parametry

Interval
DateInterval

Požadovaný. Hodnota výčtu DateInterval nebo řetězcový výraz představující časový interval, který chcete použít jako jednotku rozdílu mezi Date1 a Date2.

Date1
DateTime

Požadovaný. První hodnota data a času, kterou chcete použít ve výpočtu.

Date2
DateTime

Požadovaný. Druhá hodnota data a času, kterou chcete použít ve výpočtu.

DayOfWeek
FirstDayOfWeek

Volitelný. Hodnota zvolená z FirstDayOfWeek výčtu, která určuje první den v týdnu. Pokud není zadaný, použije se Sunday.

WeekOfYear
FirstWeekOfYear

Volitelný. Hodnota zvolená z FirstWeekOfYear výčtu, která určuje první týden roku. Pokud není zadaný, použije se Jan1.

Návraty

Dlouhá hodnota určující počet časových intervalů mezi dvěma Date hodnotami.

Výjimky

Date1, Date2nebo DayofWeek je mimo rozsah.

Date1 nebo Date2 je neplatný typ.

Příklady

Tento příklad používá funkci DateDiff k zobrazení počtu dní mezi daným datem a dnešním datem.

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

Poznámky

Pomocí funkce DateDiff můžete určit, kolik zadaných časových intervalů existuje mezi dvěma hodnotami data a času. Můžete například použít DateDiff k výpočtu počtu dní mezi dvěma daty nebo počtu týdnů mezi dnešním a koncem roku.

Chování

  • Léčba parametrů. DateDiff odečte hodnotu Date1 od hodnoty Date2, aby vznikl rozdíl. V volajícím programu se nezmění žádná hodnota.

  • Vrátí hodnoty. Vzhledem k tomu, že Date1 a Date2 jsou datového typu Date, uchovávají hodnoty data a času přesné na 100 nanosekundových odškrtávkách v systémovém časovači. DateDiff ale vždy vrátí počet časových intervalů jako Long hodnotu.

    Pokud Date1 představuje pozdější datum a čas než Date2, DateDiff vrátí záporné číslo.

  • Denní intervaly. Pokud je Interval nastavena na DateInterval.DayOfYear, je považován za DateInterval.Day, protože DayOfYear není smysluplnou jednotkou pro časový interval.

  • Týdenní intervaly. Je-li Interval nastavena na DateInterval.WeekOfYear, návratová hodnota představuje počet týdnů mezi prvním dnem v týdnu obsahujícím Date1 a prvním dnem v týdnu obsahujícím Date2. Následující příklad ukazuje, jak to vytváří různé výsledky od 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)
    

    V předchozím příkladu DateDiff vrátí hodnotu 0 až wD, protože rozdíl mezi těmito dvěma daty je menší než sedm dní, ale vrátí hodnotu 1 až wY, protože mezi prvními dny v příslušných kalendářních týdnech existuje sedmidenní rozdíl.

  • Větší intervaly. Pokud je Interval nastavena na DateInterval.Year, vrátí se hodnota čistě z částí roku Date1 a Date2. Podobně se návratová hodnota pro DateInterval.Month počítá čistě z argumentů roku a měsíce a pro DateInterval.Quarter z čtvrtletí obsahujících dvě kalendářní data.

    Například při porovnávání prosince 31 až 1. ledna následujícího roku DateDiff vrátí hodnotu 1 pro DateInterval.Year, DateInterval.Quarternebo DateInterval.Month, i když uplynul maximálně jeden den.

    Pro jazykové verze, jako je japonština s více obdobími, metoda DateDiff nevrací rozdíl v letech, pokud rozdíl přesahuje dvě nebo více období. Místo toho můžete vypočítat rozdíl v hodnotách vrácených vlastností Year, jak je znázorněno v následujícím příkladu: date2.Year - date1.Year.

  • Jiné intervaly. Vzhledem k tomu, že struktura DateTime podporuje každou Date hodnotu, poskytují její metody další možnosti při hledání časových intervalů. Například můžete použít metodu Subtract v některém z přetížených formulářů: DateTime.Subtract odečte TimeSpan z proměnné Date k vrácení jiné Date hodnoty a DateTime.Subtract odečte hodnotu Date, která vrátí TimeSpan. Proces můžete zjistit, kolik milisekund trvá, jak ukazuje následující příklad.

    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 může mít jedno z následujících nastavení.

Hodnota výčtu Řetězcová hodnota Jednotka časového rozdílu
DateInterval.Day "d" Den
DateInterval.DayOfYear "y" Den
DateInterval.Hour "h" Hodina
DateInterval.Minute "n" Minuta
DateInterval.Month "m" Měsíc
DateInterval.Quarter "q" Čtvrt
DateInterval.Second "s" Vteřina
DateInterval.Weekday "w" Týden
DateInterval.WeekOfYear "ww" Kalendář týden
DateInterval.Year "yyyyy" Rok

Argument DayOfWeek může mít jedno z následujících nastavení.

Hodnota výčtu Hodnota Popis
FirstDayOfWeek.System 0 První den týdne zadaný v nastavení systému
FirstDayOfWeek.Sunday 1 Neděle (výchozí)
FirstDayOfWeek.Monday 2 Pondělí (v souladu se standardem ISO 8601, oddílem 3.17)
FirstDayOfWeek.Tuesday 3 Úterý
FirstDayOfWeek.Wednesday 4 Středa
FirstDayOfWeek.Thursday 5 Čtvrtek
FirstDayOfWeek.Friday 6 Pátek
FirstDayOfWeek.Saturday 7 Sobota

Argument WeekOfYear může mít jedno z následujících nastavení.

Hodnota výčtu Hodnota Popis
FirstWeekOfYear.System 0 První týden roku zadaný v nastavení systému
FirstWeekOfYear.Jan1 1 Týden, ve kterém nastane 1. leden (výchozí)
FirstWeekOfYear.FirstFourDays 2 Týden, který má alespoň čtyři dny v novém roce (vyhovuje normě ISO 8601, oddíl 3.17)
FirstWeekOfYear.FirstFullWeek 3 První celý týden v novém roce

Viz také

Platí pro

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

Zdroj:
DateAndTime.vb
Zdroj:
DateAndTime.vb
Zdroj:
DateAndTime.vb

Odečte Date1 od Date2 a poskytne dlouhou hodnotu určující počet časových intervalů mezi těmito dvěma hodnotami 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

Parametry

Interval
String

Požadovaný. Hodnota výčtu DateInterval nebo řetězcový výraz představující časový interval, který chcete použít jako jednotku rozdílu mezi Date1 a Date2.

Date1
Object

Požadovaný. První hodnota data a času, kterou chcete použít ve výpočtu.

Date2
Object

Požadovaný. Druhá hodnota data a času, kterou chcete použít ve výpočtu.

DayOfWeek
FirstDayOfWeek

Volitelný. Hodnota zvolená z FirstDayOfWeek výčtu, která určuje první den v týdnu. Pokud není zadaný, použije se Sunday.

WeekOfYear
FirstWeekOfYear

Volitelný. Hodnota zvolená z FirstWeekOfYear výčtu, která určuje první týden roku. Pokud není zadaný, použije se Jan1.

Návraty

Dlouhá hodnota určující počet časových intervalů mezi dvěma Date hodnotami.

Výjimky

Date1, Date2nebo DayofWeek je mimo rozsah.

Date1 nebo Date2 je neplatný typ.

Příklady

Tento příklad používá funkci DateDiff k zobrazení počtu dní mezi daným datem a dnešním datem.

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

Poznámky

Pomocí funkce DateDiff můžete určit, kolik zadaných časových intervalů existuje mezi dvěma hodnotami data a času. Můžete například použít DateDiff k výpočtu počtu dní mezi dvěma daty nebo počtu týdnů mezi dnešním a koncem roku.

Chování

  • Léčba parametrů. DateDiff odečte hodnotu Date1 od hodnoty Date2, aby vznikl rozdíl. V volajícím programu se nezmění žádná hodnota.

  • Vrátí hodnoty. Vzhledem k tomu, že Date1 a Date2 jsou datového typu Date, uchovávají hodnoty data a času přesné na 100 nanosekundových odškrtávkách v systémovém časovači. DateDiff ale vždy vrátí počet časových intervalů jako Long hodnotu.

    Pokud Date1 představuje pozdější datum a čas než Date2, DateDiff vrátí záporné číslo.

  • Denní intervaly. Pokud je Interval nastavena na DateInterval.DayOfYear, je považován za DateInterval.Day, protože DayOfYear není smysluplnou jednotkou pro časový interval.

  • Týdenní intervaly. Je-li Interval nastavena na DateInterval.WeekOfYear, návratová hodnota představuje počet týdnů mezi prvním dnem v týdnu obsahujícím Date1 a prvním dnem v týdnu obsahujícím Date2. Následující příklad ukazuje, jak to vytváří různé výsledky od 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)
    

    V předchozím příkladu DateDiff vrátí hodnotu 0 až wD, protože rozdíl mezi těmito dvěma daty je menší než sedm dní, ale vrátí hodnotu 1 až wY, protože mezi prvními dny v příslušných kalendářních týdnech existuje sedmidenní rozdíl.

  • Větší intervaly. Pokud je Interval nastavena na DateInterval.Year, vrátí se hodnota čistě z částí roku Date1 a Date2. Podobně se návratová hodnota pro DateInterval.Month počítá čistě z argumentů roku a měsíce a pro DateInterval.Quarter z čtvrtletí obsahujících dvě kalendářní data.

    Například při porovnávání prosince 31 až 1. ledna následujícího roku DateDiff vrátí hodnotu 1 pro DateInterval.Year, DateInterval.Quarternebo DateInterval.Month, i když uplynul maximálně jeden den.

    Pro jazykové verze, jako je japonština s více obdobími, metoda DateDiff nevrací rozdíl v letech, pokud rozdíl přesahuje dvě nebo více období. Místo toho můžete vypočítat rozdíl v hodnotách vrácených vlastností Year, jak je znázorněno v následujícím příkladu: date2.Year - date1.Year.

  • Jiné intervaly. Vzhledem k tomu, že struktura DateTime podporuje každou Date hodnotu, poskytují její metody další možnosti při hledání časových intervalů. Například můžete použít metodu Subtract v některém z přetížených formulářů: DateTime.Subtract odečte TimeSpan z proměnné Date k vrácení jiné Date hodnoty a DateTime.Subtract odečte hodnotu Date, která vrátí TimeSpan. Proces můžete zjistit, kolik milisekund trvá, jak ukazuje následující příklad.

    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 může mít jedno z následujících nastavení.

Hodnota výčtu Řetězcová hodnota Jednotka časového rozdílu
DateInterval.Day "d" Den
DateInterval.DayOfYear "y" Den
DateInterval.Hour "h" Hodina
DateInterval.Minute "n" Minuta
DateInterval.Month "m" Měsíc
DateInterval.Quarter "q" Čtvrt
DateInterval.Second "s" Vteřina
DateInterval.Weekday "w" Týden
DateInterval.WeekOfYear "ww" Kalendář týden
DateInterval.Year "yyyyy" Rok

Argument DayOfWeek může mít jedno z následujících nastavení.

Hodnota výčtu Hodnota Popis
FirstDayOfWeek.System 0 První den týdne zadaný v nastavení systému
FirstDayOfWeek.Sunday 1 Neděle (výchozí)
FirstDayOfWeek.Monday 2 Pondělí (v souladu se standardem ISO 8601, oddílem 3.17)
FirstDayOfWeek.Tuesday 3 Úterý
FirstDayOfWeek.Wednesday 4 Středa
FirstDayOfWeek.Thursday 5 Čtvrtek
FirstDayOfWeek.Friday 6 Pátek
FirstDayOfWeek.Saturday 7 Sobota

Argument WeekOfYear může mít jedno z následujících nastavení.

Hodnota výčtu Hodnota Popis
FirstWeekOfYear.System 0 První týden roku zadaný v nastavení systému
FirstWeekOfYear.Jan1 1 Týden, ve kterém nastane 1. leden (výchozí)
FirstWeekOfYear.FirstFourDays 2 Týden, který má alespoň čtyři dny v novém roce (vyhovuje normě ISO 8601, oddíl 3.17)
FirstWeekOfYear.FirstFullWeek 3 První celý týden v novém roce

Viz také

Platí pro