|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Сравнить время в VBS |
|
VBS/WSH/JS - [решено] Сравнить время в VBS
|
Ветеран Сообщения: 12426 |
Всем привет!
Есть переменная со временем в стандартном формате hh:mm:ss, есть вторая, в которую пишется ну вы поняли что ![]() Как бы их сравнить? Значение в первой переменной меняется раз в несколько минут. Разумеется будут переходы через 0 часов и надо избежать ошибок типа "с 23:59:40 по 0:01:01 прошло -23 часа...". В другой переменной есть дата, можно в принципе и её задействовать при необходимости. Попалась мне DateDiff, но она почему-то не работает даже у них на сайте... |
|
Отправлено: 18:30, 17-01-2012 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Morpheus, у меня получилось без проблем, только для определения времени (точнее даты-времени) я использую функцию Now. Здесь разницу получаю в секундах. По видимому, можно тупо сравнить, что больше, одно время или другое, не используя DateDiff, если не интересна разница.
|
------- Последний раз редактировалось megaloman, 17-01-2012 в 21:00. Отправлено: 20:47, 17-01-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Morpheus, а если поточнее, что именно надо сравнивать (физический смысл величин)? Ибо я завсегда пользуюсь именно DateDiff. Суть в том, что сравнивать надо именно полные дату-время (ну, или привести их к этому типу данных).
|
Отправлено: 21:34, 17-01-2012 | #3 |
Ветеран Сообщения: 12426
|
Профиль | Отправить PM | Цитировать Спасибо! Действительно работает
![]() У меня не срабатывало потому, что я не умею задавать переменные. Если точнее, задавал в одной процедуре, а рассчитывал поиспользовать в другой - не вышло ![]() У них не срабатывало из-за "Jan". Стоило заменить на "01" и поехало. А я достаточно времени потратил на приведение к их формату. Шайсе... Работает только в IE, это нормально? Кстати работает и если сравнивать только время, без даты, но наверное будут траблы при переходе в следующие сутки. |
Отправлено: 22:28, 17-01-2012 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Morpheus, проблема в том, что для иноязычных пользователей сие как раз может и сработать
![]() Именно в VBScript есть ещё одна полезная функция — SetLocale(), иногда помогающая при переводе текстового представления даты/времени в тип дата/время. Например, приведённый пример для нас мог бы выглядеть так (я заведомо привожу избыточный код — для удобства демонстрации; исполнять лучше под «cscript.exe» — много вывода): 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 И, вот, если в этом коде закомментировать относящееся к «SetLocale()» — мы закономерно получим ошибку времени исполнения на функции преобразования типа «CDate()»: Цитата:
|
||
Последний раз редактировалось Iska, 17-01-2012 в 23:06. Причина: Добавлено «преобразования типа» Отправлено: 22:57, 17-01-2012 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Как сравнить "дата+время" двух файлов? | Dmitry S. | Скриптовые языки администрирования Windows | 11 | 08-10-2011 14:48 | |
VBS/WSH/JS - [решено] HTA + VBS | Чем отлаживать VBS в теле HTA | vxor | Программирование и базы данных | 8 | 10-03-2011 11:17 | |
VBS/WSH/JS - Помогите редактировать Autorun_Disable.vbs на Autorun_Enable.vbs | nod201 | Скриптовые языки администрирования Windows | 0 | 05-12-2009 05:44 | |
вирус и червь VBS/Small.k,VBS/Small.NAB | zelen | Лечение систем от вредоносных программ | 1 | 25-12-2008 10:44 | |
Сравнить исходники. | Guest | Программирование и базы данных | 1 | 28-01-2004 03:28 |
|