Исправление VB6 Date Bug? - PullRequest
1 голос
/ 07 июля 2010

Кажется, что 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 ]

5 голосов
/ 07 июля 2010

Вы должны использовать функцию DateDiff.Его можно адаптировать к любому уровню точности, который вам необходим.

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

0 голосов
/ 07 июля 2010

«Относись к твоим датам как к двойникам», которые они за сценой

Debug.Print "Equal? " + CStr(Abs(date1 - date2) < 0.000000001)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...