DateAndTime.DateDiff Metod

Definition

Returnerar ett värde som anger antalet tidsintervall mellan två Date värden.

Överlagringar

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

Subtraherar Date1 från Date2 för att ge ett långt värde som anger antalet tidsintervall mellan de två Date värdena.

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

Subtraherar Date1 från Date2 för att ge ett långt värde som anger antalet tidsintervall mellan de två Date värdena.

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

Subtraherar Date1 från Date2 för att ge ett långt värde som anger antalet tidsintervall mellan de två Date värdena.

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

Parametrar

Interval
DateInterval

Required. Ett DateInterval uppräkningsvärde eller ett stränguttryck som representerar det tidsintervall som du vill använda som skillnadenhet mellan Date1 och Date2.

Date1
DateTime

Required. Det första datum/tid-värde som du vill använda i beräkningen.

Date2
DateTime

Required. Det andra datum/tid-värdet som du vill använda i beräkningen.

DayOfWeek
FirstDayOfWeek

Optional. Ett värde som väljs från FirstDayOfWeek uppräkningen som anger den första dagen i veckan. Om det inte anges används Sunday.

WeekOfYear
FirstWeekOfYear

Optional. Ett värde som valts från FirstWeekOfYear uppräkningen som anger årets första vecka. Om det inte anges används Jan1.

Returer

Ett långt värde som anger antalet tidsintervall mellan två Date värden.

Undantag

Date1, Date2, eller DayofWeek ligger utom räckhåll.

Date1 eller Date2 är av en ogiltig typ.

Exempel

I det DateDiff här exemplet används funktionen för att visa antalet dagar mellan ett visst datum och idag.

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

Kommentarer

Du kan använda DateDiff funktionen för att avgöra hur många angivna tidsintervall som finns mellan två datum-/tidsvärden. Du kan till exempel använda DateDiff för att beräkna antalet dagar mellan två datum eller antalet veckor mellan idag och slutet av året.

Beteende

  • Behandling av parametrar. DateDiff subtraherar värdet Date1 för från värdet Date2 för för att producera skillnaden. Inget av värdena ändras i det anropande programmet.

  • Returnera värden. Eftersom Date1 och Date2 är av Date datatypen innehåller de datum- och tidsvärden som är korrekta till 100 nanosekunders tick på systemtimern. Returnerar dock DateDiff alltid antalet tidsintervall som ett Long värde.

    Om Date1 representerar ett senare datum och en senare tid än Date2returnerar DateDiff ett negativt tal.

  • Dagintervall. Om Interval är inställt på DateInterval.DayOfYearbehandlas det på samma sätt som DateInterval.Day, eftersom DayOfYear det inte är en meningsfull enhet för ett tidsintervall.

  • Veckointervall. Om Interval är inställt på DateInterval.WeekOfYearrepresenterar returvärdet antalet veckor mellan den första dagen i veckan som innehåller Date1 och den första dagen i veckan som innehåller Date2. I följande exempel visas hur detta ger olika resultat från 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)
    

    I föregående exempel DateDiff returnerar 0 till wD eftersom skillnaden mellan de två datumen är mindre än sju dagar, men den returnerar 1 till wY eftersom det finns en sjudagarsskillnad mellan de första dagarna i respektive kalenderveckor.

  • Större intervall. Om Interval är inställt på DateInterval.Yearberäknas returvärdet enbart från årsdelarna i Date1 och Date2. På samma sätt beräknas returvärdet för DateInterval.Month enbart från argumentens års- och månadsdelar och från DateInterval.Quarter de kvartal som innehåller de två datumen.

    När du till exempel jämför 31 december till 1 januari följande år DateDiff returnerar 1 för DateInterval.Year, DateInterval.Quartereller DateInterval.Month, även om bara en dag har förflutit.

    För kulturer som japanska som har flera epoker DateDiff returnerar metoden inte någon skillnad i år om skillnaden sträcker sig över två eller flera epoker. I stället kan du beräkna skillnaden i värden som returneras av Year egenskapen, enligt följande exempel: date2.Year - date1.Year.

  • Andra intervall. Eftersom varje Date värde stöds av en DateTime struktur ger dess metoder ytterligare alternativ för att hitta tidsintervall. Du kan till exempel använda Subtract metoden i något av dess överlagrade formulär: DateTime.Subtract subtraherar en TimeSpan från en variabel för att returnera ett Date annat Date värde och DateTime.Subtract subtraherar ett Date värde för att returnera ett TimeSpan. Du kan ta reda på hur många millisekunder det tar, vilket visas i följande exempel.

    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
    

Argumentet Interval kan ha någon av följande inställningar.

Uppräkningsvärde Strängvärde Tidsskillnadsenhet
DateInterval.Day "d" Day
DateInterval.DayOfYear y Day
DateInterval.Hour "h" Timme
DateInterval.Minute "n" Minut
DateInterval.Month "m" Månad
DateInterval.Quarter "q" Kvartal
DateInterval.Second s Andra
DateInterval.Weekday "v" Vecka
DateInterval.WeekOfYear "vv" Kalendervecka
DateInterval.Year "yyyyy" Year

Argumentet DayOfWeek kan ha någon av följande inställningar.

Uppräkningsvärde Value Description
FirstDayOfWeek.System 0 Första veckodag som anges i systeminställningarna
FirstDayOfWeek.Sunday 1 Söndag (standard)
FirstDayOfWeek.Monday 2 Måndag (uppfyller ISO-standarden 8601, avsnitt 3.17)
FirstDayOfWeek.Tuesday 3 Tuesday
FirstDayOfWeek.Wednesday 4 Onsdag
FirstDayOfWeek.Thursday 5 Torsdag
FirstDayOfWeek.Friday 6 Fredag
FirstDayOfWeek.Saturday 7 lördag

Argumentet WeekOfYear kan ha någon av följande inställningar.

Uppräkningsvärde Value Description
FirstWeekOfYear.System 0 Första veckan på året som anges i systeminställningar
FirstWeekOfYear.Jan1 1 Vecka då 1 januari inträffar (standard)
FirstWeekOfYear.FirstFourDays 2 Vecka som har minst fyra dagar under det nya året (uppfyller ISO-standarden 8601, avsnitt 3.17)
FirstWeekOfYear.FirstFullWeek 3 Första hela veckan i det nya året

Se även

Gäller för

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

Subtraherar Date1 från Date2 för att ge ett långt värde som anger antalet tidsintervall mellan de två Date värdena.

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

Parametrar

Interval
String

Required. Ett DateInterval uppräkningsvärde eller ett stränguttryck som representerar det tidsintervall som du vill använda som skillnadenhet mellan Date1 och Date2.

Date1
Object

Required. Det första datum/tid-värde som du vill använda i beräkningen.

Date2
Object

Required. Det andra datum/tid-värdet som du vill använda i beräkningen.

DayOfWeek
FirstDayOfWeek

Optional. Ett värde som väljs från FirstDayOfWeek uppräkningen som anger den första dagen i veckan. Om det inte anges används Sunday.

WeekOfYear
FirstWeekOfYear

Optional. Ett värde som valts från FirstWeekOfYear uppräkningen som anger årets första vecka. Om det inte anges används Jan1.

Returer

Ett långt värde som anger antalet tidsintervall mellan två Date värden.

Undantag

Date1, Date2, eller DayofWeek ligger utom räckhåll.

Date1 eller Date2 är av en ogiltig typ.

Exempel

I det DateDiff här exemplet används funktionen för att visa antalet dagar mellan ett visst datum och idag.

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

Kommentarer

Du kan använda DateDiff funktionen för att avgöra hur många angivna tidsintervall som finns mellan två datum-/tidsvärden. Du kan till exempel använda DateDiff för att beräkna antalet dagar mellan två datum eller antalet veckor mellan idag och slutet av året.

Beteende

  • Behandling av parametrar. DateDiff subtraherar värdet Date1 för från värdet Date2 för för att producera skillnaden. Inget av värdena ändras i det anropande programmet.

  • Returnera värden. Eftersom Date1 och Date2 är av Date datatypen innehåller de datum- och tidsvärden som är korrekta till 100 nanosekunders tick på systemtimern. Returnerar dock DateDiff alltid antalet tidsintervall som ett Long värde.

    Om Date1 representerar ett senare datum och en senare tid än Date2returnerar DateDiff ett negativt tal.

  • Dagintervall. Om Interval är inställt på DateInterval.DayOfYearbehandlas det på samma sätt som DateInterval.Day, eftersom DayOfYear det inte är en meningsfull enhet för ett tidsintervall.

  • Veckointervall. Om Interval är inställt på DateInterval.WeekOfYearrepresenterar returvärdet antalet veckor mellan den första dagen i veckan som innehåller Date1 och den första dagen i veckan som innehåller Date2. I följande exempel visas hur detta ger olika resultat från 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)
    

    I föregående exempel DateDiff returnerar 0 till wD eftersom skillnaden mellan de två datumen är mindre än sju dagar, men den returnerar 1 till wY eftersom det finns en sjudagarsskillnad mellan de första dagarna i respektive kalenderveckor.

  • Större intervall. Om Interval är inställt på DateInterval.Yearberäknas returvärdet enbart från årsdelarna i Date1 och Date2. På samma sätt beräknas returvärdet för DateInterval.Month enbart från argumentens års- och månadsdelar och från DateInterval.Quarter de kvartal som innehåller de två datumen.

    När du till exempel jämför 31 december till 1 januari följande år DateDiff returnerar 1 för DateInterval.Year, DateInterval.Quartereller DateInterval.Month, även om bara en dag har förflutit.

    För kulturer som japanska som har flera epoker DateDiff returnerar metoden inte någon skillnad i år om skillnaden sträcker sig över två eller flera epoker. I stället kan du beräkna skillnaden i värden som returneras av Year egenskapen, enligt följande exempel: date2.Year - date1.Year.

  • Andra intervall. Eftersom varje Date värde stöds av en DateTime struktur ger dess metoder ytterligare alternativ för att hitta tidsintervall. Du kan till exempel använda Subtract metoden i något av dess överlagrade formulär: DateTime.Subtract subtraherar en TimeSpan från en variabel för att returnera ett Date annat Date värde och DateTime.Subtract subtraherar ett Date värde för att returnera ett TimeSpan. Du kan ta reda på hur många millisekunder det tar, vilket visas i följande exempel.

    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
    

Argumentet Interval kan ha någon av följande inställningar.

Uppräkningsvärde Strängvärde Tidsskillnadsenhet
DateInterval.Day "d" Day
DateInterval.DayOfYear y Day
DateInterval.Hour "h" Timme
DateInterval.Minute "n" Minut
DateInterval.Month "m" Månad
DateInterval.Quarter "q" Kvartal
DateInterval.Second s Andra
DateInterval.Weekday "v" Vecka
DateInterval.WeekOfYear "vv" Kalendervecka
DateInterval.Year "yyyyy" Year

Argumentet DayOfWeek kan ha någon av följande inställningar.

Uppräkningsvärde Value Description
FirstDayOfWeek.System 0 Första veckodag som anges i systeminställningarna
FirstDayOfWeek.Sunday 1 Söndag (standard)
FirstDayOfWeek.Monday 2 Måndag (uppfyller ISO-standarden 8601, avsnitt 3.17)
FirstDayOfWeek.Tuesday 3 Tuesday
FirstDayOfWeek.Wednesday 4 Onsdag
FirstDayOfWeek.Thursday 5 Torsdag
FirstDayOfWeek.Friday 6 Fredag
FirstDayOfWeek.Saturday 7 lördag

Argumentet WeekOfYear kan ha någon av följande inställningar.

Uppräkningsvärde Value Description
FirstWeekOfYear.System 0 Första veckan på året som anges i systeminställningar
FirstWeekOfYear.Jan1 1 Vecka då 1 januari inträffar (standard)
FirstWeekOfYear.FirstFourDays 2 Vecka som har minst fyra dagar under det nya året (uppfyller ISO-standarden 8601, avsnitt 3.17)
FirstWeekOfYear.FirstFullWeek 3 Första hela veckan i det nya året

Se även

Gäller för