DateAndTime.DateDiff Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 |
DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear) |
Odečte |
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
, Date2
nebo 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 hodnotuDate1
od hodnotyDate2
, aby vznikl rozdíl. V volajícím programu se nezmění žádná hodnota.Vrátí hodnoty. Vzhledem k tomu, že
Date1
aDate2
jsou datového typuDate
, 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ů jakoLong
hodnotu.Pokud
Date1
představuje pozdější datum a čas nežDate2
,DateDiff
vrátí záporné číslo.Denní intervaly. Pokud je
Interval
nastavena naDateInterval.DayOfYear
, je považován zaDateInterval.Day
, protožeDayOfYear
není smysluplnou jednotkou pro časový interval.Týdenní intervaly. Je-li
Interval
nastavena naDateInterval.WeekOfYear
, návratová hodnota představuje počet týdnů mezi prvním dnem v týdnu obsahujícímDate1
a prvním dnem v týdnu obsahujícímDate2
. Následující příklad ukazuje, jak to vytváří různé výsledky odDateInterval.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 naDateInterval.Year
, vrátí se hodnota čistě z částí rokuDate1
aDate2
. Podobně se návratová hodnota proDateInterval.Month
počítá čistě z argumentů roku a měsíce a proDateInterval.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 proDateInterval.Year
,DateInterval.Quarter
neboDateInterval.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 metoduSubtract
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 hodnotuDate
, 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é
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- souhrn datových typů (Visual Basic)
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
, Date2
nebo 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 hodnotuDate1
od hodnotyDate2
, aby vznikl rozdíl. V volajícím programu se nezmění žádná hodnota.Vrátí hodnoty. Vzhledem k tomu, že
Date1
aDate2
jsou datového typuDate
, 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ů jakoLong
hodnotu.Pokud
Date1
představuje pozdější datum a čas nežDate2
,DateDiff
vrátí záporné číslo.Denní intervaly. Pokud je
Interval
nastavena naDateInterval.DayOfYear
, je považován zaDateInterval.Day
, protožeDayOfYear
není smysluplnou jednotkou pro časový interval.Týdenní intervaly. Je-li
Interval
nastavena naDateInterval.WeekOfYear
, návratová hodnota představuje počet týdnů mezi prvním dnem v týdnu obsahujícímDate1
a prvním dnem v týdnu obsahujícímDate2
. Následující příklad ukazuje, jak to vytváří různé výsledky odDateInterval.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 naDateInterval.Year
, vrátí se hodnota čistě z částí rokuDate1
aDate2
. Podobně se návratová hodnota proDateInterval.Month
počítá čistě z argumentů roku a měsíce a proDateInterval.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 proDateInterval.Year
,DateInterval.Quarter
neboDateInterval.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 metoduSubtract
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 hodnotuDate
, 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é
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- souhrn datových typů (Visual Basic)