我正在尝试制作电子表格来计算本周的工作时间。我遇到的问题是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。有什么建议吗?
答案 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