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í
| Name | Description |
|---|---|
| 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
- 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, Date2nebo 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ů.
DateDiffodečte hodnotuDate1od hodnotyDate2, aby vznikl rozdíl. V volajícím programu se nezmění žádná hodnota.Vrátí hodnoty. Vzhledem k tomu, že
Date1aDate2jsou 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.DateDiffale vždy vrátí počet časových intervalů jakoLonghodnotu.Pokud
Date1představuje pozdější datum a čas nežDate2,DateDiffvrátí záporné číslo.Denní intervaly. Pokud je
Intervalnastavena naDateInterval.DayOfYear, je považován zaDateInterval.Day, protožeDayOfYearnení smysluplnou jednotkou pro časový interval.Týdenní intervaly. Je-li
Intervalnastavena naDateInterval.WeekOfYear, návratová hodnota představuje počet týdnů mezi prvním dnem v týdnu obsahujícímDate1a 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
DateDiffvrá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
Intervalnastavena naDateInterval.Year, vrátí se hodnota čistě z částí rokuDate1aDate2. Podobně se návratová hodnota proDateInterval.Monthpočítá čistě z argumentů roku a měsíce a proDateInterval.Quarterz č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
DateDiffvrátí hodnotu 1 proDateInterval.Year,DateInterval.QuarterneboDateInterval.Month, i když uplynul maximálně jeden den.Pro jazykové verze, jako je japonština s více obdobími, metoda
DateDiffnevrací 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
Datehodnotu, poskytují její metody další možnosti při hledání časových intervalů. Například můžete použít metoduSubtractv některém z přetížených formulářů: DateTime.Subtract odečte TimeSpan z proměnnéDatek vrácení jinéDatehodnoty 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
- 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, Date2nebo 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ů.
DateDiffodečte hodnotuDate1od hodnotyDate2, aby vznikl rozdíl. V volajícím programu se nezmění žádná hodnota.Vrátí hodnoty. Vzhledem k tomu, že
Date1aDate2jsou 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.DateDiffale vždy vrátí počet časových intervalů jakoLonghodnotu.Pokud
Date1představuje pozdější datum a čas nežDate2,DateDiffvrátí záporné číslo.Denní intervaly. Pokud je
Intervalnastavena naDateInterval.DayOfYear, je považován zaDateInterval.Day, protožeDayOfYearnení smysluplnou jednotkou pro časový interval.Týdenní intervaly. Je-li
Intervalnastavena naDateInterval.WeekOfYear, návratová hodnota představuje počet týdnů mezi prvním dnem v týdnu obsahujícímDate1a 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
DateDiffvrá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
Intervalnastavena naDateInterval.Year, vrátí se hodnota čistě z částí rokuDate1aDate2. Podobně se návratová hodnota proDateInterval.Monthpočítá čistě z argumentů roku a měsíce a proDateInterval.Quarterz č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
DateDiffvrátí hodnotu 1 proDateInterval.Year,DateInterval.QuarterneboDateInterval.Month, i když uplynul maximálně jeden den.Pro jazykové verze, jako je japonština s více obdobími, metoda
DateDiffnevrací 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
Datehodnotu, poskytují její metody další možnosti při hledání časových intervalů. Například můžete použít metoduSubtractv některém z přetížených formulářů: DateTime.Subtract odečte TimeSpan z proměnnéDatek vrácení jinéDatehodnoty 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)