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í

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

Odečte Date1 se od Date2 hodnoty, která určuje dlouhý počet časových intervalů mezi těmito dvěma Date hodnotami.

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

Odečte Date1 se od Date2 hodnoty, která určuje dlouhý počet časových intervalů mezi těmito dvěma Date hodnotami.

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

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

Odečte Date1 se od Date2 hodnoty, která určuje dlouhý počet časových intervalů mezi těmito dvěma Date hodnotami.

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ý. DateInterval Hodnota výčtu 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 výčtu FirstDayOfWeek , která určuje první den v týdnu. Pokud není zadáno, Sunday použije se.

WeekOfYear
FirstWeekOfYear

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

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á DateDiff funkci 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 můžete DateDiff 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 od hodnoty Date1Date2 k vytvoření rozdílu. V volajícím programu se nezmění žádná hodnota.

  • Vrátí hodnoty. Vzhledem k tomu Date1 , že jsou datového Date2Date typu, uchovávají hodnoty data a času přesné na 100 nanosekundových odškrtávkách v systémovém časovači. DateDiff Vždy ale 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 Interval je nastavena na DateInterval.DayOfYear, je považována za stejnou jako DateInterval.Day, protože DayOfYear není smysluplnou jednotkou pro časový interval.

  • Týdenní intervaly. Je-li Interval nastavena na DateInterval.WeekOfYearhodnotu , 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, wD protože rozdíl mezi těmito dvěma daty je menší než sedm dní, ale vrátí hodnotu 1, protože wY mezi prvními dny v příslušných kalendářních týdnech existuje sedmidenní rozdíl.

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

    Například při porovnávání prosince 31 s lednem 1 následujícího roku vrátí DateDiff 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 nevrací rozdíl v letech, DateDiff 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 Year vlastností, jak je znázorněno v následujícím příkladu: date2.Year - date1.Year.

  • Jiné intervaly. Vzhledem k tomu, že struktura podporuje DateTime každou Date hodnotu, poskytují její metody další možnosti při hledání časových intervalů. Můžete například použít metodu Subtract v některém z přetížených formulářů: DateTime.Subtract odečte TimeSpan z Date proměnné jinou Date hodnotu a DateTime.Subtract odečte Date hodnotu, která vrátí TimeSpanhodnotu. 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
Zdroj:
DateAndTime.vb
Zdroj:
DateAndTime.vb

Odečte Date1 se od Date2 hodnoty, která určuje dlouhý počet časových intervalů mezi těmito dvěma Date hodnotami.

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ý. DateInterval Hodnota výčtu 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 výčtu FirstDayOfWeek , která určuje první den v týdnu. Pokud není zadáno, Sunday použije se.

WeekOfYear
FirstWeekOfYear

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

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á DateDiff funkci 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 můžete DateDiff 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 od hodnoty Date1Date2 k vytvoření rozdílu. V volajícím programu se nezmění žádná hodnota.

  • Vrátí hodnoty. Vzhledem k tomu Date1 , že jsou datového Date2Date typu, uchovávají hodnoty data a času přesné na 100 nanosekundových odškrtávkách v systémovém časovači. DateDiff Vždy ale 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 Interval je nastavena na DateInterval.DayOfYear, je považována za stejnou jako DateInterval.Day, protože DayOfYear není smysluplnou jednotkou pro časový interval.

  • Týdenní intervaly. Je-li Interval nastavena na DateInterval.WeekOfYearhodnotu , 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, wD protože rozdíl mezi těmito dvěma daty je menší než sedm dní, ale vrátí hodnotu 1, protože wY mezi prvními dny v příslušných kalendářních týdnech existuje sedmidenní rozdíl.

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

    Například při porovnávání prosince 31 s lednem 1 následujícího roku vrátí DateDiff 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 nevrací rozdíl v letech, DateDiff 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 Year vlastností, jak je znázorněno v následujícím příkladu: date2.Year - date1.Year.

  • Jiné intervaly. Vzhledem k tomu, že struktura podporuje DateTime každou Date hodnotu, poskytují její metody další možnosti při hledání časových intervalů. Můžete například použít metodu Subtract v některém z přetížených formulářů: DateTime.Subtract odečte TimeSpan z Date proměnné jinou Date hodnotu a DateTime.Subtract odečte Date hodnotu, která vrátí TimeSpanhodnotu. 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