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
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
, Date2
nebo 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 hodnotuDate1
z hodnotyDate2
, aby vznikl rozdíl. Ani jedna hodnota se ve volajícím programu nezmění.Návratové hodnoty. Vzhledem k tomu, že
Date1
aDate2
jsou datovéhoDate
typu, uchovávají v systémovém časovači hodnoty data a času s přesností na 100 nanosekundových impulzů. Jako hodnotu všakDateDiff
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á hodnotaDateInterval.DayOfYear
, považuje se za stejnou hodnotu jakoDateInterval.Day
, protožeDayOfYear
není smysluplnou jednotkou pro časový interval.Týdenní intervaly. Pokud
Interval
je nastavená hodnotaDateInterval.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 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 na
wD
,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á naDateInterval.Year
, vypočítá se vrácená hodnota čistě z částí roku pro aDate2
Date1
. Podobně se návratová hodnota proDateInterval.Month
vypočítává čistě z částí argumentů rok a měsíc a zDateInterval.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 proDateInterval.Year
,DateInterval.Quarter
neboDateInterval.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 metoduSubtract
v některé z jejích přetížených forem: DateTime.Subtract odečte TimeSpan od proměnné jinouDate
Date
hodnotu a DateTime.Subtract odečteDate
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é
- 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 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
, Date2
nebo 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 hodnotuDate1
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 aDate2
jsou datovéhoDate
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šakDateDiff
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
Interval
je nastavená hodnotaDateInterval.DayOfYear
, považuje se za stejnou hodnotu jakoDateInterval.Day
, protožeDayOfYear
není smysluplnou jednotkou pro časový interval.Týdenní intervaly. Pokud
Interval
je nastavená hodnotaDateInterval.WeekOfYear
, návratová hodnota představuje počet týdnů mezi prvním dnem v týdnu aDate1
prvním dnem v týdnu obsahujícímDate2
. 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 na
wD
,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á hodnotaDateInterval.Year
, vypočítá se návratová hodnota čistě z ročních částí aDate1
Date2
. Podobně se návratová hodnota proDateInterval.Month
vypočítává čistě z roku a měsíce z částí argumentů a zDateInterval.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 proDateInterval.Year
,DateInterval.Quarter
neboDateInterval.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 metoduSubtract
v některém z přetížených forem: DateTime.Subtract odečte TimeSpan hodnotu od proměnné a vrátí jinouDate
Date
hodnotu a DateTime.Subtract odečteDate
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é
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Souhrn datových typů (Visual Basic)
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro