計算功能

DateDiff()

DateDiff() 返回一個 Long,表示兩個指定日期之間的時間間隔數。

句法

DateDiff ( interval, date1, date2  [, firstdayofweek] [, firstweekofyear] )
  • interval 可以是 DatePart() 函式中定義的任何區間
  • date1date2 是你要在計算中使用的兩個日期
  • Firstdayofweek 可firstweekofyear 是可選的。有關說明,請參閱 DatePart() 功能

例子

Sub DateDiffExamples()

    ' Check to see if 2016 is a leap year.
    Dim NumberOfDays As Long
    NumberOfDays = DateDiff("d", #1/1/2016#, #1/1/2017#)
    
    If NumberOfDays = 366 Then
        Debug.Print "2016 is a leap year."              'This will output.
    End If
           
    ' Number of seconds in a day
    Dim StartTime As Date
    Dim EndTime As Date
    StartTime = TimeSerial(0, 0, 0)
    EndTime = TimeSerial(24, 0, 0)
    Debug.Print DateDiff("s", StartTime, EndTime)       'prints 86400

End Sub

使用 DateAdd()

DateAdd() 返回已新增指定日期或時間間隔的 Date

句法

DateAdd ( interval, number, date  ) 
  • interval 可以是 DatePart() 函式中定義的任何區間
  • number 數字表示式,是你要新增的間隔數。它可以是正面的(在將來獲得日期)或者是負面的(在過去獲取日期)。
  • date 是表示新增間隔的日期Date 或文字

例子 :

Sub DateAddExamples()

    Dim Sample As Date
    'Create sample date and time of 2016-07-28 12:34:56
    Sample = DateSerial(2016, 7, 28) + TimeSerial(12, 34, 56)
    
    ' Date 5 months previously (prints 2016-02-28):
    Debug.Print Format$(DateAdd("m", -5, Sample), "yyyy-mm-dd")
    
    ' Date 10 months previously (prints 2015-09-28):
    Debug.Print Format$(DateAdd("m", -10, Sample), "yyyy-mm-dd")
    
    ' Date in 8 months (prints 2017-03-28):
    Debug.Print Format$(DateAdd("m", 8, Sample), "yyyy-mm-dd")

    ' Date/Time 18 hours previously (prints 2016-07-27 18:34:56):
    Debug.Print Format$(DateAdd("h", -18, Sample), "yyyy-mm-dd hh:nn:ss")
    
    ' Date/Time in 36 hours (prints 2016-07-30 00:34:56):
    Debug.Print Format$(DateAdd("h", 36, Sample), "yyyy-mm-dd hh:nn:ss")

End Sub