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 Date hodnotami.

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 Date hodnotami.

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

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

Odčítá Date1 se, Date2 aby byla zadána dlouhá hodnota určující 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

Povinná hodnota. Hodnota DateInterval 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

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

Date2
DateTime

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

DayOfWeek
FirstDayOfWeek

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

WeekOfYear
FirstWeekOfYear

Nepovinný parametr. Hodnota vybraná z výčtu FirstWeekOfYear , která určuje první týden v roce. Pokud není zadaný, 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ého typu.

Příklady

V tomto příkladu se DateDiff funkce používá k zobrazení počtu dnů mezi daným datem a dneškem.

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 dnem a koncem roku.

Chování

  • Zpracování parametrů. DateDiff odečte hodnotu Date1 z hodnoty Date2 , aby vznikl rozdíl. Ani jedna hodnota se ve volajícím programu nezmění.

  • Návratové hodnoty. Vzhledem k tomu, že Date1 a Date2 jsou datového Date typu, uchovávají v systémovém časovači hodnoty data a času s přesností na 100 nanosekundových impulzů. Jako hodnotu však DateDiff vždy vrátí počet časových intervalů Long .

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

  • Denní intervaly. Pokud Interval je nastavená hodnota DateInterval.DayOfYear, považuje se za stejnou hodnotu jako DateInterval.Day, protože DayOfYear není smysluplnou jednotkou pro časový interval.

  • Týdenní intervaly. Pokud Interval je nastavená hodnota 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 vede k jiným výsledkům než 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 vrátí 0 nawD, DateDiff protože rozdíl mezi dvěma kalendářními daty je menší než sedm dnů, ale vrátí 1 nawY, protože mezi prvními dny příslušných kalendářních týdnů existuje sedmidenní rozdíl.

  • Větší intervaly. Pokud Interval je hodnota nastavená na DateInterval.Year, vypočítá se vrácená hodnota čistě z částí roku pro a Date2Date1 . Podobně se návratová hodnota pro DateInterval.Month vypočítává čistě z částí argumentů rok a měsíc a z DateInterval.Quarter čtvrtletí obsahujících dvě kalendářní data.

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

    U jazykových verzí, jako je japonština, které mají více ér, nevrací metoda rozdíl v letech, DateDiff pokud rozdíl zahrnuje dvě nebo více ér. 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 každá Date hodnota je podporována strukturou DateTime , její metody poskytují další možnosti při hledání časových intervalů. Například můžete použít metodu Subtract v některé z jejích přetížených forem: DateTime.Subtract odečte TimeSpan od proměnné jinou DateDate hodnotu a DateTime.Subtract odečte Date hodnotu, která vrátí TimeSpanhodnotu . Proces můžete načasovat, aby zjistil, 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í.

Výčtová hodnota Ř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" Month (Měsíc)
DateInterval.Quarter "q" Quarter (Čtvrtletí)
DateInterval.Second "s" Second
DateInterval.Weekday „w“ Týden
DateInterval.WeekOfYear "ww" Týden kalendáře
DateInterval.Year "yyyy" Year (Rok)

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

Výčtová hodnota Hodnota Popis
FirstDayOfWeek.System 0 První den týdne určený v systémových nastaveních.
FirstDayOfWeek.Sunday 1 Neděle (výchozí)
FirstDayOfWeek.Monday 2 Pondělí (v souladu se standardem ISO 8601, oddíl 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í.

Výčtová hodnota Hodnota Popis
FirstWeekOfYear.System 0 První týden v roce určený v systémových nastaveních
FirstWeekOfYear.Jan1 1 Týden do kterého spadá datum 1. ledna (výchozí)
FirstWeekOfYear.FirstFourDays 2 Týden, který obsahuje alespoň čtyři dny nového roku (v souladu se standardem 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 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

Povinná hodnota. Hodnota DateInterval 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

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

Date2
Object

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

DayOfWeek
FirstDayOfWeek

Nepovinný parametr. Hodnota vybraná z výčtu FirstDayOfWeek , která určuje první den v týdnu. Pokud není zadán, Sunday použije se.

WeekOfYear
FirstWeekOfYear

Nepovinný parametr. Hodnota vybraná z výčtu FirstWeekOfYear , která určuje první týden v roce. Pokud není zadán, 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ého typu.

Příklady

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

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 vypočítat DateDiff počet dní mezi dvěma daty nebo počet týdnů mezi dneškem a koncem roku.

Chování

  • Zpracování parametrů. DateDiff Odečte hodnotu Date1 od hodnoty hodnoty, Date2 aby se vytvořil rozdíl. Ve volajícím programu se nezmění žádná hodnota.

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

  • Týdenní intervaly. Pokud Interval je nastavená hodnota DateInterval.WeekOfYear, návratová hodnota představuje počet týdnů mezi prvním dnem v týdnu a Date1 prvním dnem v týdnu obsahujícím Date2. Následující příklad ukazuje, jak to vytváří jiné výsledky než 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 vrátí hodnotu 0 nawD, DateDiff protože rozdíl mezi dvěma kalendářními daty je menší než sedm dnů, ale vrátí hodnotu 1 nawY, protože mezi prvními dny příslušných kalendářních týdnů je sedmidenní rozdíl.

  • Větší intervaly. Pokud Interval je nastavená hodnota DateInterval.Year, vypočítá se návratová hodnota čistě z ročních částí a Date1Date2. Podobně se návratová hodnota pro DateInterval.Month vypočítává čistě z roku a měsíce z částí argumentů a z DateInterval.Quarter čtvrtletí obsahujících dvě kalendářní data.

    Například při porovnání 31. prosince 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.

    U jazykových verzí, jako je japonština, které mají více ér, metoda nevrací rozdíl v letech, DateDiff pokud rozdíl pokrývá dvě nebo více ér. 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.

  • Další intervaly. Vzhledem k tomu, že každá Date hodnota je podporována strukturou DateTime , její metody poskytují 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 forem: DateTime.Subtract odečte TimeSpan hodnotu od proměnné a vrátí jinou DateDate hodnotu a DateTime.Subtract odečte Date hodnotu, která vrátí TimeSpanhodnotu . Proces můžete načasovat, abyste zjistili, 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í.

Výčtová hodnota Ř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" Month (Měsíc)
DateInterval.Quarter "q" Quarter (Čtvrtletí)
DateInterval.Second "s" Second
DateInterval.Weekday „w“ Týden
DateInterval.WeekOfYear "ww" Kalendář týden
DateInterval.Year "yyyy" Year (Rok)

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

Výčtová hodnota Hodnota Popis
FirstDayOfWeek.System 0 První den týdne určený v systémových nastaveních.
FirstDayOfWeek.Sunday 1 Neděle (výchozí)
FirstDayOfWeek.Monday 2 Pondělí (v souladu se standardem ISO 8601, oddíl 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í.

Výčtová hodnota Hodnota Popis
FirstWeekOfYear.System 0 První týden v roce určený v systémových nastaveních
FirstWeekOfYear.Jan1 1 Týden do kterého spadá datum 1. ledna (výchozí)
FirstWeekOfYear.FirstFourDays 2 Týden, který obsahuje alespoň čtyři dny nového roku (v souladu se standardem ISO 8601, oddíl 3.17)
FirstWeekOfYear.FirstFullWeek 3 První celý týden v novém roce

Viz také

Platí pro