修复VB6日期Bug?

时间:2010-07-07 15:47:33

标签: datetime vb6 comparison

似乎VB6在某些情况下无法正确比较日期。这有什么解决方案吗?

Private Sub CheckDate()

    date1 = #7/6/2010 2:00:00 PM#
    Debug.Print "Date 1: " + CStr(date1)

    date2 = DateAdd("h", -8, #7/6/2010 10:00:00 PM#)
    Debug.Print "Date 2: " + CStr(date2)

    Debug.Print "Equal? " + CStr(date1 = date2)

End Sub

正确的输出应该是:

Date 1: 7/6/2010 2:00:00 PM
Date 2: 7/6/2010 2:00:00 PM
Equal? True

但实际输出是:

Date 1: 7/6/2010 2:00:00 PM
Date 2: 7/6/2010 2:00:00 PM
Equal? False

有没有办法解决这个问题,或者有什么方法可以避免这种情况(无论是什么)?

2 个答案:

答案 0 :(得分:5)

您应该使用DateDiff函数。它可以适应您需要的任何精度水平。

http://www.vb6.us/tutorials/learn-howto-use-visual-basic-datediff-function

答案 1 :(得分:0)

“将你的日期视为双打”,他们在场景背后

Debug.Print "Equal? " + CStr(Abs(date1 - date2) < 0.000000001)