Win7 上的 MS Excel Professional Plus v14。
我无法比较日期/时间的相等性。
两个看起来相等的日期,12/16/2013 12:19:33 pm 都被标注为日期。一个在日期数组中,另一个是日期变量。arrPP 稍后会重新调整。当我执行 DateDiff("s",date1,date2) 时,它会产生 0。
Dim arrPP() As Date ' During runtime shows type is Date(1 to 2, 1 to 1)
Dim dNextStartTime as Date
'...code removed ...
If arrPP(iPP_START, lPP_index) <= dNextStartTime Then
GoTo PP_OUT
End If
即使它们是相等的,上面的评估结果为假并且采取了错误的路径。这很难追踪并导致意外/错误的结果。
是否有关于日期平等的官方“陷阱”?是否存在需要比较的隐藏毫秒,或者将比较限制到秒级别的方法?
我尝试了其他几种替代方法,包括将 CDate 放在数组元素的前面。
失败:
If Not(arrPP(iPP_START, lPP_index) > dNextStartTime) Then
GoTo PP_OUT
End If
PASS:(但谁会想到这样做呢?)
If arrPP(iPP_START, lPP_index) <= dNextStartTime Or _
DateDiff("s",arrPP(iPP_START,lPP_index),dNextStartTime) = 0 Then
GoTo PP_OUT
End If