计算日期选择器内容控件的时间差

时间:2016-05-05 20:08:09

标签: ms-word word-vba

我正在尝试确定word-vba中两个单独的日期选择器内容控件之间的时差。结果显示在纯文本内容控件中。我目前能够产生一个结果,但很难在" h:mm:ss"中产生时差。格式。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

由于VBA没有内置函数来格式化时间跨度,因此您需要自己计算各个组件,例如天,小时,分钟,秒,例如使用以下功能:

Public Function FormattedDateDiff(date1 As ContentControl, date2 As ContentControl) As String

    Dim dateDiffInSeconds As Long
    Dim dd As Long
    Dim hh As Integer
    Dim mm As Integer
    Dim ss As Integer
    Dim ss_remaining As Long

    dateDiffInSeconds = Abs(dateDiff("s", date1.Range.Text, date2.Range.Text))

    dd = dateDiffInSeconds \ 86400
    ss_remaining = dateDiffInSeconds Mod 86400

    hh = ss_remaining \ 3600
    ss_remaining = ss_remaining Mod 3600

    mm = ss_remaining \ 60
    ss = ss_remaining Mod 60

    If dd > 0 Then
        FormattedDateDiff = dd & " days, "
    End If

    FormattedDateDiff = FormattedDateDiff & TimeSerial(hh, mm, ss_remaining)

End Function