如何计算小数分量时的小时数

时间:2014-08-18 15:43:20

标签: excel vba excel-vba

我正在尝试制作电子表格来计算本周的工作时间。我遇到的问题是DateDiff函数只返回整数,所以我得到的结果不正确。

Function CalculateHoursDay(strStart As String, strEnd As String, intLunch As Integer) As Double

    Dim dblHours As Double

    dblHours = DateDiff("h", strStart, DateAdd("h", 12, strEnd)) - intLunch

    CalculateHoursDay = dblHours

End Function

如果我用“7:00”,“2:45”,.5调用该功能,那么当我需要7.25时,我会回来7。事实上,我也得到7为“7:00”,“2:45”,0所以你可以看到十进制值被截断。我增加了12个小时,因此可以轻松输入时间而不考虑上午,下午或军事时间,因为超过99%(如果不是100%)的时间将是AM的开始时间和PM的结束时间。

我期望从具有所述参数的函数获得7.25。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

Alex提供了正确的答案,tbur还指出了一旦我应用Alex解决方案就会出现的错误。

Function CalculateHoursDay(strStart As String, strEnd As String, dblLunch As Double) As Double

    Dim dblHours As Double

    '"n" refers to minutes.
    dblHours = (DateDiff("n", strStart, DateAdd("h", 12, strEnd)) / 60) - dblLunch

    CalculateHoursDay = dblHours

End Function