共用方式為


DateAndTime.DateDiff 方法 (DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)

傳回指定兩個 Date 值之間時間間隔數的 Long 值。

命名空間: Microsoft.VisualBasic
組件: Microsoft.VisualBasic (在 microsoft.visualbasic.dll 中)

語法

'宣告
Public Shared Function DateDiff ( _
    Interval As DateInterval, _
    Date1 As DateTime, _
    Date2 As DateTime, _
    <OptionalAttribute> Optional DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday, _
    <OptionalAttribute> Optional WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1 _
) As Long
'用途
Dim Interval As DateInterval
Dim Date1 As DateTime
Dim Date2 As DateTime
Dim DayOfWeek As FirstDayOfWeek
Dim WeekOfYear As FirstWeekOfYear
Dim returnValue As Long

returnValue = DateAndTime.DateDiff(Interval, Date1, Date2, DayOfWeek, WeekOfYear)
public static long DateDiff (
    DateInterval Interval,
    DateTime Date1,
    DateTime Date2,
    [OptionalAttribute] FirstDayOfWeek DayOfWeek,
    [OptionalAttribute] FirstWeekOfYear WeekOfYear
)
public:
static long long DateDiff (
    DateInterval Interval, 
    DateTime Date1, 
    DateTime Date2, 
    [OptionalAttribute] FirstDayOfWeek DayOfWeek, 
    [OptionalAttribute] FirstWeekOfYear WeekOfYear
)
public static long DateDiff (
    DateInterval Interval, 
    DateTime Date1, 
    DateTime Date2, 
    /** @attribute OptionalAttribute() */ FirstDayOfWeek DayOfWeek, 
    /** @attribute OptionalAttribute() */ FirstWeekOfYear WeekOfYear
)
public static function DateDiff (
    Interval : DateInterval, 
    Date1 : DateTime, 
    Date2 : DateTime, 
    DayOfWeek : FirstDayOfWeek, 
    WeekOfYear : FirstWeekOfYear
) : long

參數

  • Interval
    必要項。DateInterval 列舉值或 String 運算式,表示您希望當做 Date1 和 Date2 之間差異的單位使用之時間間隔。
  • Date1
    必要項。Date - 這是您在計算中想要使用的第一個日期/時間值。
  • Date2
    必要項。Date - 這是您在計算中想要使用的第一個二個日期/時間值。
  • DayOfWeek
    選擇項。選自 FirstDayOfWeek 列舉型別的值,指定一週的第一天。如果未指定,就會使用 FirstDayOfWeek.Sunday
  • WeekOfYear
    選擇項。選自 FirstWeekOfYear 列舉型別的值,指定一年的第一週。如果未指定,就會使用 FirstWeekOfYear.Jan1

傳回值

傳回指定兩個 Date 值之間時間間隔數的 Long 值。

備註

如需詳細資訊,請參閱 Visual Basic 的主題 DateDiff 函式 (Visual Basic)

您可以使用 DateDiff 函式來判斷在兩個日期 / 時間的值之間有多少個指定之時間間隔存在。例如,您可使用 DateDiff 來計算兩個日期之間的天數,或是從今天開始到年底的週數。

行為

  • 參數的處理。 DateDiff 會從 Date2 值中減去 Date1 值,以獲得差異。這兩個值在呼叫程式中都不會變更。

  • 傳回值。 由於 Date1 和 Date2 皆屬於 Date 資料型別,所以它們保存的日期和時間值,可以精確到系統計時器上的 100 奈秒刻度。但是,DateDiff 一定會以 Long 值的形式傳回時間間隔數。

    如果 Date1 表示的日期和時間晚於 Date2,則 DateDiff 會傳回負數。

  • **天數間隔。**如果將 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,則會單純地從 Date1 和 Date2 的年份部分計算傳回值。同樣地,會單純地從引數的年和月部分計算 DateInterval.Month 的傳回值;如果是 DateInterval.Quarter,則是從包含這兩個日期的季份計算。

    例如,比較 12 月 31 日和來年的 1 月 1 日時,DateDiff 會針對 DateInterval.YearDateInterval.QuarterDateInterval.Month 傳回 1,即使最多只過了一天也一樣。

  • **其他間隔。**由於 DateTime 結構支援每個 Date 值,因此它的方法會在您尋找時間間隔時提供其他選項。例如,您可透過任一多載形式來使用 Subtract 方法:DateTime.Subtract 會從 Date 變數減去 TimeSpan,以傳回另一個 Date 值,而 DateTime.Subtract 會減去 Date 值,以傳回 TimeSpan。您可以為處理序計時,以瞭解所花的毫秒數,如下列範例所示。

    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 Integer = runLength.Milliseconds
    

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

新年度的第一整週

範例

此範例使用 DateDiff 函式來顯示給定的日期和今天之間的天數。

Dim firstDate, msg As String
Dim secondDate As Date
firstDate = InputBox("Enter a date")
secondDate = CDate(firstDate)
msg = "Days from today: " & DateDiff(DateInterval.Day, Now, secondDate)
MsgBox(msg)

平台

Windows 98、 Windows 2000 SP4、 Windows CE、 Windows Millennium Edition、 Windows Mobile for Pocket PC、 Windows Mobile for Smartphone、 Windows Server 2003、 Windows XP Media Center Edition、 Windows XP Professional x64 Edition、 Windows XP SP2、 Windows XP Starter Edition

.NET Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱系統需求一節的內容。

版本資訊

.NET Framework

支援版本:2.0、1.1、1.0

.NET Compact Framework

支援版本:2.0、1.0

請參閱

參考

DateAndTime 類別
DateAndTime 成員
Microsoft.VisualBasic 命名空間
DateTime
TimeSpan

其他資源

DateDiff 函式 (Visual Basic)
DateAdd 函式 (Visual Basic)
DatePart 函式 (Visual Basic)
Day 函式 (Visual Basic)
Format 函式
Now 屬性
Weekday 函式 (Visual Basic)
Year 函式 (Visual Basic)
Date 資料型別 (Visual Basic)