Что нового

[Время, дата] Как сравнить макрос @HOUR

rybik

Новичок
Сообщения
84
Репутация
0
Код:
If  @HOUR = 19 And @MIN => 50 Then

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

SuperSonic

Новичок
Сообщения
25
Репутация
1
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

Новичок
Сообщения
30
Репутация
0
По-моему, удобнее объединить часы и минуты, а затем сравнивать их с чем-то

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

pvnn

Осваивающий
Сообщения
305
Репутация
32
rybik, @HOUR возвращает строку, а вы сравниваете с числом... и неправильно записано условие =>, а нужно >=
Код:
If  Number(@HOUR) = 19 And Number(@MIN) >= 50 Then
	MsgBox(0,'','Запуск')
EndIf


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

А вообще, условие запуска по времени можно сделать так:
Код:
#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
 
Верх