修复VB6日期Bug?

der*_*ann 1 vb6 comparison datetime

似乎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
Run Code Online (Sandbox Code Playgroud)

正确的输出应该是:

Date 1: 7/6/2010 2:00:00 PM
Date 2: 7/6/2010 2:00:00 PM
Equal? True
Run Code Online (Sandbox Code Playgroud)

但真正的输出是:

Date 1: 7/6/2010 2:00:00 PM
Date 2: 7/6/2010 2:00:00 PM
Equal? False
Run Code Online (Sandbox Code Playgroud)

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

And*_*wis 5

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

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