Автор Тема: [Время, дата] Как сравнить макрос @HOUR  (Прочитано 620 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн rybik [?]

  • Новичок
  • *
  • Сообщений: 70
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Код: AutoIt [Выделить]
If  @HOUR = 19 And @MIN => 50 Then

Мне нужно, что бы выполнялось действие после 19 часов и 50 минут. Если оставить одни минуты, то действие выполняется нормально, а если добавить часы (@HOUR), то выдает ошибку, я думаю это связано с тем что макрос настроен на время 12 часов до полудня и после полудня, если установить значение 12 или меньше, то тоже не работает. Как можно по-другому решить вопрос?

Русское сообщество AutoIt

[Время, дата] Как сравнить макрос @HOUR
« Отправлен: Ноябрь 25, 2017, 18:32:20 »

Оффлайн SuperSonic [?]

  • ЧТО СМОТРИШЬ, СОПЛЯК ?!
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Время, дата] Как сравнить макрос @HOUR
« Ответ #1, Отправлен: Ноябрь 25, 2017, 18:38:41 »
OffTopic@HOUR   Hours value of clock in 24-hour format. Range is 00 to 23

https://www.autoitscript.com/autoit3/docs/macros.htm#%40HOUR

Оффлайн Rouzenrot [?]

  • Новичок
  • *
  • Сообщений: 22
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Время, дата] Как сравнить макрос @HOUR
« Ответ #2, Отправлен: Ноябрь 27, 2017, 07:15:14 »
По-моему, удобнее объединить часы и минуты, а затем сравнивать их с чем-то

Код: AutoIt [Выделить]
$time = @HOUR&":"&@MIN
$evening = '22:00'
If $time > $evening Then
   MsgBox (64, "Вечер", "пора спать")
Else
   MsgBox (64, "работа", "Работать негры, солнце ещё высоко!")
EndIf


Русское сообщество AutoIt

Re: [Время, дата] Как сравнить макрос @HOUR
« Ответ #2 Отправлен: Ноябрь 27, 2017, 07:15:14 »

Оффлайн pvnn [?]

  • Осваивающий
  • **
  • Сообщений: 279
  • Репутация: 29
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: [Время, дата] Как сравнить макрос @HOUR
« Ответ #3, Отправлен: Ноябрь 27, 2017, 07:47:32 »
rybik, @HOUR возвращает строку, а вы сравниваете с числом... и неправильно записано условие =>,  а нужно >=
Код: AutoIt [Выделить]
If  Number(@HOUR) = 19 And Number(@MIN) >= 50 Then
    MsgBox(0,'','Запуск')
EndIf
 


Посмотрите функцию _NowCalc(). Здесь вы сможете сравнить год, месяц, день.... и даже секунды

А вообще, условие запуска по времени можно сделать так:
Код: AutoIt [Выделить]
#include <Date.au3>

$DateStart='19:30'
While 1
    If StringMid(_NowCalc(),12,5)=$DateStart Then Start()
    Sleep(300)
WEnd

Func Start()
    MsgBox(0,'','Test')
    Exit
EndFunc
 

« Последнее редактирование: Ноябрь 27, 2017, 08:00:32 от pvnn »

Русское сообщество AutoIt

Re: [Время, дата] Как сравнить макрос @HOUR
« Ответ #3 Отправлен: Ноябрь 27, 2017, 07:47:32 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
10708 Просмотров
Последний ответ Январь 20, 2010, 03:54:52
от Guezt Gutsy
4 Ответов
6679 Просмотров
Последний ответ Август 30, 2011, 12:26:13
от at
3 Ответов
3813 Просмотров
Последний ответ Февраль 07, 2012, 14:29:11
от joiner
3 Ответов
2731 Просмотров
Последний ответ Сентябрь 05, 2012, 12:01:58
от SurikenTSD
3 Ответов
5820 Просмотров
Последний ответ Сентябрь 26, 2012, 17:41:07
от madmasles
4 Ответов
2992 Просмотров
Последний ответ Март 10, 2013, 01:33:20
от erlik
13 Ответов
2713 Просмотров
Последний ответ Август 07, 2014, 11:06:43
от madmasles
2 Ответов
2331 Просмотров
Последний ответ Октябрь 01, 2014, 07:19:33
от Tuner
2 Ответов
1654 Просмотров
Последний ответ Февраль 06, 2015, 14:27:18
от kristow13
6 Ответов
2664 Просмотров
Последний ответ Ноябрь 15, 2015, 17:46:47
от dexter987