DateAndTime.DateDiff 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
回傳一個值,指定兩個 Date 值之間的時間間隔數。
多載
| 名稱 | Description |
|---|---|
| DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear) |
從 |
| DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear) |
從 |
DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)
從 Date1Date2 減去 ,得到一個長值,指定兩個 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
參數
- Interval
- DateInterval
必填。 一個DateInterval枚舉值或字串表達式,代表你想用來作為與 之間差異Date1Date2單位的時間區間。
- Date1
- DateTime
必填。 您想要在計算中使用的第一個日期/時間值。
- Date2
- DateTime
必填。 您想要在計算中使用的第二個日期/時間值。
- DayOfWeek
- FirstDayOfWeek
自選。 從 FirstDayOfWeek 列舉中選出的數值,指定了一週的第一天。 如果未指定,就會使用 Sunday。
- WeekOfYear
- FirstWeekOfYear
自選。 從列舉中選出 FirstWeekOfYear 的值,指定了一年的第一週。 如果未指定,就會使用 Jan1。
傳回
長值指定兩個 Date 值之間的時間間隔數。
例外狀況
Date1, Date2, 或 DayofWeek 超出範圍。
Date1 或 Date2 為無效型。
範例
此範例使用該 DateDiff 函數顯示某日期與今日之間的天數。
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
備註
你可以用這個 DateDiff 函數來判斷兩個日期/時間值之間有多少個指定的時間區間。 例如,你可以用來 DateDiff 計算兩個日期之間的天數,或是今天到年底之間的週數。
行為
參數的處理方式。
DateDiff從 的Date2值中減去 的Date1值以產生差值。 呼叫程式中不會變更兩個值。傳回值。 由於
Date1和Date2屬於Date資料型態,它們能保持系統計時器中精確到 100 奈秒刻度的日期與時間值。 然而,總是DateDiff以時間區間數作為Long值回傳。若
Date1代表較晚的日期與時間,則DateDiffDate2會返回負數。日間隔。 若
Interval設為DateInterval.DayOfYear,則視為DateInterval.Day,因為DayOfYear在某一時間區間內不是一個有意義的單位。周間隔。 若
Interval設為DateInterval.WeekOfYear,回傳值代表包含Date1的週第一天與包含Date2的週第一天之間的週數。 以下範例說明此方法如何產生與 不同的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)在前述範例中,回
DateDiff傳 0 是wD因為兩個日期的差小於七天,但回傳 1 是wY因為兩日曆週的第一天相差七天。較大的間隔。 若
Interval設為DateInterval.Year,則返回值純粹由 和Date2的Date1年份部分計算。 同樣地,的DateInterval.Month返回值純粹由參數中的年份和月份部分計算,而 則DateInterval.Quarter由包含兩個日期的季度計算。例如,當比較 12 月 31 日與隔年 1 月 1 日時,
DateDiff即使最多只過了一天,對DateInterval.YearDateInterval.QuarterDateInterval.Month、 、 或 會回傳 1。對於像日本這樣有多個時代的文化,若差異跨越兩個或以上時代,該
DateDiff方法不會回傳年份差異。 相反地,你可以計算該性質所回傳 Year 的值差異,如下範例所示:date2.Year - date1.Year。其他間隔。 由於每個
Date值都有結構支持 DateTime ,其方法提供了尋找時間區間的額外選項。 例如,你可以以任一種過載形式使用該方法:從變數中減去 aDateTimeSpan 以返回另一個Date值,再DateDateTime.Subtract減去一個值以返回 TimeSpan。 DateTime.SubtractSubtract您可以計時程序來瞭解其需要多少毫秒,如下列範例所示。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
該 Interval 論證可以有以下其中一種設定。
| 列舉值 | 字串值 | 時間差異單位 |
|---|---|---|
DateInterval.Day |
“d” | 日 |
DateInterval.DayOfYear |
“y” | 日 |
DateInterval.Hour |
“h” | 小時 |
DateInterval.Minute |
“n” | 分鐘 |
DateInterval.Month |
“m” | 月 |
DateInterval.Quarter |
“q” | 季度 |
DateInterval.Second |
“s” | 第二 |
DateInterval.Weekday |
“w” | 周 |
DateInterval.WeekOfYear |
“ww” | 行事曆周 |
DateInterval.Year |
“yyyy” | 年 |
該 DayOfWeek 論證可以有以下其中一種設定。
| 列舉值 | 價值 | 描述 |
|---|---|---|
FirstDayOfWeek.System |
0 | 系統設定中指定的第一周第一天 |
FirstDayOfWeek.Sunday |
1 | 星期日 (預設值) |
FirstDayOfWeek.Monday |
2 | 星期一 (符合 ISO 標準 8601,第 3.17 節) |
FirstDayOfWeek.Tuesday |
3 | 星期二 |
FirstDayOfWeek.Wednesday |
4 | 星期三 |
FirstDayOfWeek.Thursday |
5 | 星期四 |
FirstDayOfWeek.Friday |
6 | 星期五 |
FirstDayOfWeek.Saturday |
7 | 星期六 |
該 WeekOfYear 論證可以有以下其中一種設定。
| 列舉值 | 價值 | 描述 |
|---|---|---|
FirstWeekOfYear.System |
0 | 系統設定中指定的年度第一周 |
FirstWeekOfYear.Jan1 |
1 | 1 月 1 日發生的週 (預設值) |
FirstWeekOfYear.FirstFourDays |
2 | 新年至少有四天的周(符合 ISO 標準 8601 第 3.17 節) |
FirstWeekOfYear.FirstFullWeek |
3 | 新年的第一整周 |
另請參閱
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- 資料型別摘要(Visual Basic)
適用於
DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)
從 Date1Date2 減去 ,得到一個長值,指定兩個 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
參數
- Interval
- String
必填。 一個DateInterval枚舉值或字串表達式,代表你想用來作為與 之間差異Date1Date2單位的時間區間。
- Date1
- Object
必填。 您想要在計算中使用的第一個日期/時間值。
- Date2
- Object
必填。 您想要在計算中使用的第二個日期/時間值。
- DayOfWeek
- FirstDayOfWeek
自選。 從 FirstDayOfWeek 列舉中選出的數值,指定了一週的第一天。 如果未指定,就會使用 Sunday。
- WeekOfYear
- FirstWeekOfYear
自選。 從列舉中選出 FirstWeekOfYear 的值,指定了一年的第一週。 如果未指定,就會使用 Jan1。
傳回
長值指定兩個 Date 值之間的時間間隔數。
例外狀況
Date1, Date2, 或 DayofWeek 超出範圍。
Date1 或 Date2 為無效型。
範例
此範例使用該 DateDiff 函數顯示某日期與今日之間的天數。
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
備註
你可以用這個 DateDiff 函數來判斷兩個日期/時間值之間有多少個指定的時間區間。 例如,你可以用來 DateDiff 計算兩個日期之間的天數,或是今天到年底之間的週數。
行為
參數的處理方式。
DateDiff從 的Date2值中減去 的Date1值以產生差值。 呼叫程式中不會變更兩個值。傳回值。 由於
Date1和Date2屬於Date資料型態,它們能保持系統計時器中精確到 100 奈秒刻度的日期與時間值。 然而,總是DateDiff以時間區間數作為Long值回傳。若
Date1代表較晚的日期與時間,則DateDiffDate2會返回負數。日間隔。 若
Interval設為DateInterval.DayOfYear,則視為DateInterval.Day,因為DayOfYear在某一時間區間內不是一個有意義的單位。周間隔。 若
Interval設為DateInterval.WeekOfYear,回傳值代表包含Date1的週第一天與包含Date2的週第一天之間的週數。 以下範例說明此方法如何產生與 不同的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)在前述範例中,回
DateDiff傳 0 是wD因為兩個日期的差小於七天,但回傳 1 是wY因為兩日曆週的第一天相差七天。較大的間隔。 若
Interval設為DateInterval.Year,則返回值純粹由 和Date2的Date1年份部分計算。 同樣地,的DateInterval.Month返回值純粹由參數中的年份和月份部分計算,而 則DateInterval.Quarter由包含兩個日期的季度計算。例如,當比較 12 月 31 日與隔年 1 月 1 日時,
DateDiff即使最多只過了一天,對DateInterval.YearDateInterval.QuarterDateInterval.Month、 、 或 會回傳 1。對於像日本這樣有多個時代的文化,若差異跨越兩個或以上時代,該
DateDiff方法不會回傳年份差異。 相反地,你可以計算該性質所回傳 Year 的值差異,如下範例所示:date2.Year - date1.Year。其他間隔。 由於每個
Date值都有結構支持 DateTime ,其方法提供了尋找時間區間的額外選項。 例如,你可以以任一種過載形式使用該方法:從變數中減去 aDateTimeSpan 以返回另一個Date值,再DateDateTime.Subtract減去一個值以返回 TimeSpan。 DateTime.SubtractSubtract您可以計時程序來瞭解其需要多少毫秒,如下列範例所示。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
該 Interval 論證可以有以下其中一種設定。
| 列舉值 | 字串值 | 時間差異單位 |
|---|---|---|
DateInterval.Day |
“d” | 日 |
DateInterval.DayOfYear |
“y” | 日 |
DateInterval.Hour |
“h” | 小時 |
DateInterval.Minute |
“n” | 分鐘 |
DateInterval.Month |
“m” | 月 |
DateInterval.Quarter |
“q” | 季度 |
DateInterval.Second |
“s” | 第二 |
DateInterval.Weekday |
“w” | 周 |
DateInterval.WeekOfYear |
“ww” | 行事曆周 |
DateInterval.Year |
“yyyy” | 年 |
該 DayOfWeek 論證可以有以下其中一種設定。
| 列舉值 | 價值 | 描述 |
|---|---|---|
FirstDayOfWeek.System |
0 | 系統設定中指定的第一周第一天 |
FirstDayOfWeek.Sunday |
1 | 星期日 (預設值) |
FirstDayOfWeek.Monday |
2 | 星期一 (符合 ISO 標準 8601,第 3.17 節) |
FirstDayOfWeek.Tuesday |
3 | 星期二 |
FirstDayOfWeek.Wednesday |
4 | 星期三 |
FirstDayOfWeek.Thursday |
5 | 星期四 |
FirstDayOfWeek.Friday |
6 | 星期五 |
FirstDayOfWeek.Saturday |
7 | 星期六 |
該 WeekOfYear 論證可以有以下其中一種設定。
| 列舉值 | 價值 | 描述 |
|---|---|---|
FirstWeekOfYear.System |
0 | 系統設定中指定的年度第一周 |
FirstWeekOfYear.Jan1 |
1 | 1 月 1 日發生的週 (預設值) |
FirstWeekOfYear.FirstFourDays |
2 | 新年至少有四天的周(符合 ISO 標準 8601 第 3.17 節) |
FirstWeekOfYear.FirstFullWeek |
3 | 新年的第一整周 |
另請參閱
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- 資料型別摘要(Visual Basic)