Morpheus, проблема в том, что для иноязычных пользователей сие как раз может и сработать
![Smile](images/smilies/new/smile.gif)
.
Именно в VBScript есть ещё одна полезная функция — SetLocale(), иногда помогающая при переводе текстового представления даты/времени в тип дата/время. Например, приведённый пример для нас мог бы выглядеть так (я заведомо привожу избыточный код — для удобства демонстрации; исполнять лучше под «cscript.exe» — много вывода):
Код:
![Выделить весь код](images/misc/selectcode.png)
Option Explicit
Dim dtDateFirst
Dim dtDateSecond
Dim prevLocale
prevLocale = SetLocale("en-us")
WScript.Echo prevLocale
dtDateFirst = CDate("31-Jan-09 00:00:00")
dtDateSecond = CDate("31-Jan-10 23:59:00")
prevLocale = SetLocale(prevLocale)
WScript.Echo prevLocale
WScript.Echo
WScript.Echo FormatDateTime(dtDateFirst, vbLongDate) & ", " & FormatDateTime(dtDateFirst, vbLongTime)
WScript.Echo FormatDateTime(dtDateSecond, vbLongDate) & ", " & FormatDateTime(dtDateSecond, vbLongTime)
WScript.Echo
WScript.Echo DateDiff("yyyy", dtDateFirst, dtDateSecond)
WScript.Echo DateDiff("q", dtDateFirst, dtDateSecond)
WScript.Echo DateDiff("m", dtDateFirst, dtDateSecond)
WScript.Echo DateDiff("y", dtDateFirst, dtDateSecond)
WScript.Echo DateDiff("d", dtDateFirst, dtDateSecond)
WScript.Echo DateDiff("w", dtDateFirst, dtDateSecond)
WScript.Echo DateDiff("ww", dtDateFirst, dtDateSecond)
WScript.Echo DateDiff("h", dtDateFirst, dtDateSecond)
WScript.Echo DateDiff("n", dtDateFirst, dtDateSecond)
WScript.Echo DateDiff("s", dtDateFirst, dtDateSecond)
WScript.Quit 0
Результат
Цитата:
Код: ![Выделить весь код](images/misc/selectcode.png)
1049
1033
суббота, 31 января 2009 года, 00:00:00
воскресенье, 31 января 2010 года, 23:59:00
1
4
12
365
365
52
53
8783
527039
31622340
|
У Вас может быть немного иной формат вывода даты — я использую региональные настройки даты/времени, отличные от умолчальных.
И, вот, если в этом коде закомментировать относящееся к «SetLocale()» — мы закономерно получим ошибку времени исполнения на функции преобразования типа «CDate()»:
Цитата:
Ошибка выполнения Microsoft VBScript (12, 1) : Несоответствие типа: 'CDate'
|