2015-11-06 5 views
1

Я пытаюсь сравнить дату изменения файла с определенной датой.Сравнение даты, измененной с конкретной датой (VBS)

Что у меня есть это:

If FormatDateTime(objFile.DateLastModified,vbShortDate) = specificDate Then 
     'Do something 
End if 

Я попытался с помощью IsDate и переменную со значением # 11/9/2015 # но всегда возвращает ложь. Я не могу понять, как установить переменную «specificDate» на 11/9/2015.

+0

Вы не хотите сравнивать 'Date', используя' FormatDateTime() ', потому что эта функция генерирует строковое представление даты в указанном вами формате. Только сравнение переменных 'Date' использует только сравнение с objFile.DateLastModified'. – Lankymart

+0

Некоторая полезная информация здесь - http://stackoverflow.com/questions/16078043/vbs-objfile-datelastmodified-and-date-format-settings – Lankymart

ответ

0

Если вы сравниваете только дату (но не время), вам необходимо отрезать дробную часть последнего измененного значения, так как целая часть представляет дни и дробную часть - часы, минуты и секунды. После любых изменений конвертируйте значения обратно в тип даты с CDate(), а также дату, содержащую строку перед сравнением.

Sub Test() 
    dtSpecificDate = CDate("11/9/2015") 
    With CreateObject("Scripting.FileSystemObject").GetFile("C:\Test\tmp.txt") 
     dtLastModified = CDate(Int(.DateLastModified)) 
    End With 
    If dtLastModified = dtSpecificDate Then 
     ' Do something 
    End If 
End Sub 
Смежные вопросы