计算功能

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