代码之家  ›  专栏  ›  技术社区  ›  derekerdmann

修复VB6日期错误?

  •  1
  • derekerdmann  · 技术社区  · 14 年前

    在某些情况下,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 回复  |  直到 14 年前
        1
  •  5
  •   Andrew Lewis    14 年前

    应该使用DateDiff函数。它可以根据您需要的精度级别进行调整。

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

        2
  •  0
  •   wqw    14 年前

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