DateAndTime.DateDiff Metódus

Definíció

Egy értéket ad vissza, amely két érték közötti Date időintervallumok számát adja meg.

Túlterhelések

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

Kivon egy Date1Date2 hosszú értéket, amely megadja a két Date érték közötti időintervallumok számát.

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

Kivon egy Date1Date2 hosszú értéket, amely megadja a két Date érték közötti időintervallumok számát.

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

Forrás:
DateAndTime.vb
Forrás:
DateAndTime.vb
Forrás:
DateAndTime.vb
Forrás:
DateAndTime.vb
Forrás:
DateAndTime.vb

Kivon egy Date1Date2 hosszú értéket, amely megadja a két Date érték közötti időintervallumok számát.

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

Paraméterek

Interval
DateInterval

Kötelező. Enumerálási DateInterval érték vagy sztringkifejezés, amely a különbség mértékegységeként Date1Date2használni kívánt időintervallumot jelöli.

Date1
DateTime

Kötelező. A számításban használni kívánt első dátum/idő érték.

Date2
DateTime

Kötelező. A számításban használni kívánt második dátum/idő érték.

DayOfWeek
FirstDayOfWeek

Optional. Az enumerálásból FirstDayOfWeek kiválasztott érték, amely a hét első napját adja meg. Ha nincs megadva, Sunday lesz használva.

WeekOfYear
FirstWeekOfYear

Optional. Az enumerálásból FirstWeekOfYear kiválasztott érték, amely az év első hetét határozza meg. Ha nincs megadva, Jan1 lesz használva.

Válaszok

Hosszú érték, amely két érték közötti Date időintervallumok számát adja meg.

Kivételek

Date1, Date2vagy DayofWeek kívül esik a tartományon.

Date1 vagy Date2 érvénytelen típusú.

Példák

Ez a példa a függvény használatával DateDiff jeleníti meg az adott dátum és a mai nap közötti napok számát.

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

Megjegyzések

A függvény segítségével DateDiff meghatározhatja, hogy hány megadott időintervallum létezik két dátum/idő érték között. Használhatja például DateDiff a két dátum közötti napok számát, vagy a mai nap és az év vége közötti hetek számát.

Magatartás

  • Paraméterek kezelése. DateDiff kivonja Date1 a különbség értékét az értékből Date2 . A hívó programban egyik érték sem módosul.

  • Értékeket ad vissza. Date1 Mivel Date2 az Date adattípusuk, a dátum- és időértékek 100 nanoszekundumos időértékeket tartalmaznak a rendszer időzítőjén. DateDiff Azonban mindig az időintervallumok számát adja eredményül értékkéntLong.

    Ha Date1 egy későbbi dátumot és időpontot Date2jelöl, DateDiff negatív számot ad vissza.

  • Napi intervallumok. Ha Interval be van állítva DateInterval.DayOfYear, akkor a rendszer ugyanúgy kezeli, mint DateInterval.Daya rendszer, mivel DayOfYear egy időintervallum nem értelmezhető egység.

  • Heti intervallumok. Ha Interval be van állítva DateInterval.WeekOfYear, a visszatérési érték a hét első napja és az azt tartalmazó Date1Date2hét első napja közötti hetek számát jelöli. Az alábbi példa bemutatja, hogy ez hogyan hoz létre különböző eredményeket.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)
    

    Az előző példában a 0 DateDiff értéket adja vissza, wD mert a két dátum közötti különbség kevesebb, mint hét nap, de 1 wY értéket ad vissza, mivel a megfelelő naptári hetek első napjai között hétnapos különbség van.

  • Nagyobb időközök. Ha Interval be van állítvaDateInterval.Year, a visszatérési érték kiszámítása kizárólag az év részeiből és Date1a Date2 . Hasonlóképpen, a visszatérési DateInterval.Month érték kiszámítása kizárólag az argumentumok év- és hónaprészeiből, valamint DateInterval.Quarter a két dátumot tartalmazó negyedévekből történik.

    Ha például a következő év december 31-ét és január 1-ét hasonlítjuk össze, DateDiff akkor 1 DateInterval.Yearértéket ad vissza , DateInterval.Quartervagy DateInterval.Monthannak ellenére, hogy legfeljebb egy nap telt el.

    Az olyan kultúrák esetében, mint a japánok, amelyek több korszakot is használnak, a DateDiff módszer nem ad vissza különbséget éveken belül, ha a különbség két vagy több korszakra terjed ki. Ehelyett kiszámíthatja a tulajdonság által Year visszaadott értékek különbségét az alábbi példában látható módon: date2.Year - date1.Year.

  • Egyéb időközök. Mivel egy struktúra minden Date értéket támogat DateTime , a metódusok további lehetőségeket biztosítanak az időintervallumok megtalálásához. Használhatja például a metódust a Subtract túlterhelt űrlapok egyikében: DateTime.Subtract kivon egy TimeSpan változót egy Date másik Date érték visszaadásához, és DateTime.Subtract kivon egy Date értéket egy TimeSpan. Az alábbi példában látható módon időt szakíthat egy folyamatra, hogy megtudja, hány ezredmásodpercbe kerül.

    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
    

Az Interval argumentum az alábbi beállítások egyikével rendelkezhet.

Számbavételi érték Sztringérték Időeltolódás mértékegysége
DateInterval.Day "d" Nap
DateInterval.DayOfYear "y" Nap
DateInterval.Hour "h" Óra
DateInterval.Minute "p" Minute
DateInterval.Month "m" Hónap
DateInterval.Quarter „n.év“ Negyed
DateInterval.Second s Second
DateInterval.Weekday „w“ Hét
DateInterval.WeekOfYear "ww" Naptári hét
DateInterval.Year "yyyy" Year

Az DayOfWeek argumentum az alábbi beállítások egyikével rendelkezhet.

Számbavételi érték Érték Leírás
FirstDayOfWeek.System 0 A rendszerbeállításokban megadott hét első napja
FirstDayOfWeek.Sunday 1 Vasárnap (alapértelmezett)
FirstDayOfWeek.Monday 2 Hétfő (megfelel az ISO 8601 szabványnak, 3.17. szakasz)
FirstDayOfWeek.Tuesday 3 Tuesday
FirstDayOfWeek.Wednesday 4 Szerda
FirstDayOfWeek.Thursday 5 Csütörtök
FirstDayOfWeek.Friday 6 Péntek
FirstDayOfWeek.Saturday 7 Szombat

Az WeekOfYear argumentum az alábbi beállítások egyikével rendelkezhet.

Számbavételi érték Érték Leírás
FirstWeekOfYear.System 0 A rendszerbeállításokban megadott év első hete
FirstWeekOfYear.Jan1 1 A január 1-jei hét (alapértelmezett)
FirstWeekOfYear.FirstFourDays 2 Az új évben legalább négy nappal rendelkező hét (megfelel az ISO 8601 szabvány 3.17. szakaszának)
FirstWeekOfYear.FirstFullWeek 3 Az új év első teljes hete

Lásd még

A következőre érvényes:

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

Forrás:
DateAndTime.vb
Forrás:
DateAndTime.vb
Forrás:
DateAndTime.vb
Forrás:
DateAndTime.vb
Forrás:
DateAndTime.vb

Kivon egy Date1Date2 hosszú értéket, amely megadja a két Date érték közötti időintervallumok számát.

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

Paraméterek

Interval
String

Kötelező. Enumerálási DateInterval érték vagy sztringkifejezés, amely a különbség mértékegységeként Date1Date2használni kívánt időintervallumot jelöli.

Date1
Object

Kötelező. A számításban használni kívánt első dátum/idő érték.

Date2
Object

Kötelező. A számításban használni kívánt második dátum/idő érték.

DayOfWeek
FirstDayOfWeek

Optional. Az enumerálásból FirstDayOfWeek kiválasztott érték, amely a hét első napját adja meg. Ha nincs megadva, Sunday lesz használva.

WeekOfYear
FirstWeekOfYear

Optional. Az enumerálásból FirstWeekOfYear kiválasztott érték, amely az év első hetét határozza meg. Ha nincs megadva, Jan1 lesz használva.

Válaszok

Hosszú érték, amely két érték közötti Date időintervallumok számát adja meg.

Kivételek

Date1, Date2vagy DayofWeek kívül esik a tartományon.

Date1 vagy Date2 érvénytelen típusú.

Példák

Ez a példa a függvény használatával DateDiff jeleníti meg az adott dátum és a mai nap közötti napok számát.

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

Megjegyzések

A függvény segítségével DateDiff meghatározhatja, hogy hány megadott időintervallum létezik két dátum/idő érték között. Használhatja például DateDiff a két dátum közötti napok számát, vagy a mai nap és az év vége közötti hetek számát.

Magatartás

  • Paraméterek kezelése. DateDiff kivonja Date1 a különbség értékét az értékből Date2 . A hívó programban egyik érték sem módosul.

  • Értékeket ad vissza. Date1 Mivel Date2 az Date adattípusuk, a dátum- és időértékek 100 nanoszekundumos időértékeket tartalmaznak a rendszer időzítőjén. DateDiff Azonban mindig az időintervallumok számát adja eredményül értékkéntLong.

    Ha Date1 egy későbbi dátumot és időpontot Date2jelöl, DateDiff negatív számot ad vissza.

  • Napi intervallumok. Ha Interval be van állítva DateInterval.DayOfYear, akkor a rendszer ugyanúgy kezeli, mint DateInterval.Daya rendszer, mivel DayOfYear egy időintervallum nem értelmezhető egység.

  • Heti intervallumok. Ha Interval be van állítva DateInterval.WeekOfYear, a visszatérési érték a hét első napja és az azt tartalmazó Date1Date2hét első napja közötti hetek számát jelöli. Az alábbi példa bemutatja, hogy ez hogyan hoz létre különböző eredményeket.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)
    

    Az előző példában a 0 DateDiff értéket adja vissza, wD mert a két dátum közötti különbség kevesebb, mint hét nap, de 1 wY értéket ad vissza, mivel a megfelelő naptári hetek első napjai között hétnapos különbség van.

  • Nagyobb időközök. Ha Interval be van állítvaDateInterval.Year, a visszatérési érték kiszámítása kizárólag az év részeiből és Date1a Date2 . Hasonlóképpen, a visszatérési DateInterval.Month érték kiszámítása kizárólag az argumentumok év- és hónaprészeiből, valamint DateInterval.Quarter a két dátumot tartalmazó negyedévekből történik.

    Ha például a következő év december 31-ét és január 1-ét hasonlítjuk össze, DateDiff akkor 1 DateInterval.Yearértéket ad vissza , DateInterval.Quartervagy DateInterval.Monthannak ellenére, hogy legfeljebb egy nap telt el.

    Az olyan kultúrák esetében, mint a japánok, amelyek több korszakot is használnak, a DateDiff módszer nem ad vissza különbséget éveken belül, ha a különbség két vagy több korszakra terjed ki. Ehelyett kiszámíthatja a tulajdonság által Year visszaadott értékek különbségét az alábbi példában látható módon: date2.Year - date1.Year.

  • Egyéb időközök. Mivel egy struktúra minden Date értéket támogat DateTime , a metódusok további lehetőségeket biztosítanak az időintervallumok megtalálásához. Használhatja például a metódust a Subtract túlterhelt űrlapok egyikében: DateTime.Subtract kivon egy TimeSpan változót egy Date másik Date érték visszaadásához, és DateTime.Subtract kivon egy Date értéket egy TimeSpan. Az alábbi példában látható módon időt szakíthat egy folyamatra, hogy megtudja, hány ezredmásodpercbe kerül.

    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
    

Az Interval argumentum az alábbi beállítások egyikével rendelkezhet.

Számbavételi érték Sztringérték Időeltolódás mértékegysége
DateInterval.Day "d" Nap
DateInterval.DayOfYear "y" Nap
DateInterval.Hour "h" Óra
DateInterval.Minute "p" Minute
DateInterval.Month "m" Hónap
DateInterval.Quarter „n.év“ Negyed
DateInterval.Second s Second
DateInterval.Weekday „w“ Hét
DateInterval.WeekOfYear "ww" Naptári hét
DateInterval.Year "yyyy" Year

Az DayOfWeek argumentum az alábbi beállítások egyikével rendelkezhet.

Számbavételi érték Érték Leírás
FirstDayOfWeek.System 0 A rendszerbeállításokban megadott hét első napja
FirstDayOfWeek.Sunday 1 Vasárnap (alapértelmezett)
FirstDayOfWeek.Monday 2 Hétfő (megfelel az ISO 8601 szabványnak, 3.17. szakasz)
FirstDayOfWeek.Tuesday 3 Tuesday
FirstDayOfWeek.Wednesday 4 Szerda
FirstDayOfWeek.Thursday 5 Csütörtök
FirstDayOfWeek.Friday 6 Péntek
FirstDayOfWeek.Saturday 7 Szombat

Az WeekOfYear argumentum az alábbi beállítások egyikével rendelkezhet.

Számbavételi érték Érték Leírás
FirstWeekOfYear.System 0 A rendszerbeállításokban megadott év első hete
FirstWeekOfYear.Jan1 1 A január 1-jei hét (alapértelmezett)
FirstWeekOfYear.FirstFourDays 2 Az új évben legalább négy nappal rendelkező hét (megfelel az ISO 8601 szabvány 3.17. szakaszának)
FirstWeekOfYear.FirstFullWeek 3 Az új év első teljes hete

Lásd még

A következőre érvényes: