2013-11-10 1 views
1

У меня есть оператор If, как показано ниже. Если заданы значения A и B, как показано ниже, мне интересно, почему условие будет истинным в конце, поскольку DateDiff всегда будет возвращать 0 и 0 не больше 100. Я был бы признателен за любые комментарии.VB6 Возвращаемое значение от DateDiff

A = "" 
B = 100 

If DateDiff("n", Me.A, Now()) > Val(Me.B) Then 

End If 
+1

Очень легко проверить: dim dateDiffResult как Long = DateDiff (...) и посмотреть, какое значение оно имеет! Я предполагаю, что функция автоматически преобразует пустую строку в самый младший день, и, следовательно, разница между этим годом и годом 1 или чем-то вроде этого является очень большим числом и, конечно же, более 100! – pasty

+0

привет @pasty, я пробовал с кодом ниже, и я всегда получал 0 с пустой переменной A. Dim c As Integer c = DateDiff ("n", Me.A, Now()) –

ответ

2

Функция DateDiff возвращает количество минут с начала 1900 года, который намного больше, чем 100.

Я не мог заставить его работать с пустой строкой для продуманного

+0

Я думал, как вы упомянули. И я попытался отлаживать переменную integer для хранения датиффа, но я получил 0, что мне интересно. –

+1

Пустая строка A в датифеле дает мне ошибку. Целочисленные переменные изначально имеют значение 0. Используете ли вы на ошибке возобновление следующего на датиффе? Может быть, даже намного раньше в методе? – kjack

+0

Хотелось бы узнать, какой код ошибки вы получили? Это 13? –