Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: AlexBrr on November 05, 2014, 11:40:54 PM
-
Собственно назрел вопрос. Необходимо организовать действия в определенную дату и время
Хотелось реализовать так:
1. Переводим заданную дату/время в аля Юникс время (отсчет с 1970 года)
2. Сравниваем получившееся значение с константой $_time_t
Или может можно проще реализовать? Наверняка уже многие встречались с данным вопросом. В других языках есть такие команды, может кто алгоритм посоветует....мозг кипит уже
-
Константа - от слова постоянный а $_time_t это текущее значение.
В кликере есть системные переменные даты и времени
$_time_h Текущий час
$_time_m Текущая минута
$_time_s Текущая секунда
$_date_y Текущий год
$_date_m Текущий месяц
$_date_d Текущие число
Но сравнивать конечно удобнее единое число.
SUB(время, $D_c, $h_count, $m_count, $s_count)
$d_co = 86400*$D_c
$tms2 = ($h_count*3600)+($m_count*60)+$s_count+$d_co
$tms = ($_time_h*3600)+($_time_m*60)+$_time_s
$tmsu = 86400-$tms+$_time_t+$tms2
$tmsu = $tmsu-86400
END_SUB
//Первая цифра это день, 0 текущий, 1 следующий и тд.
//Следующие 3 цифры это час, минута, секунда
// время возвращается в переменную $tmsu
время(0,9,42,30) // устанавливаем дату в Unix
//=============================================
skip:
IF($tmsu < $_time_t) // ждем установленной даты
$tmsu = $tmsu+10 // добавляем 10 секунд или что то другое
LOGWRITE ("Сработало")
END_IF
//LOGWRITE ("Веремя Unix: ", $tmsu)
WAIT(1)
GOTO(skip)
Вот кстати Unix конвертер
http://www.cy-pr.com/tools/time/#stop (http://www.cy-pr.com/tools/time/#stop)
-
не знаю к месту ли
Как сделать дату + 2 недели от текущей в формате dd.mm.yyyy
с форматом понятно. а вот как 2 недели прибавить?..
-
прибавить к $_time_t 1209600 я могу. а вот как из полученного времени отжать дату в нужном формате?
-
прибавить к $_time_t 1209600 я могу. а вот как из полученного времени отжать дату в нужном формате?
Давно уже был написан скрипт вывода даты из времени Unix.
http://crapware.aidf.org/forum/index.php?topic=36.msg929#msg929 (http://crapware.aidf.org/forum/index.php?topic=36.msg929#msg929)
Тогда в кликере еще не было системных переменных выводящих день, месяц и год.
Немного подправил и вот
SUB(U_DATE,$_t_t)
$_d_voi = 0.5
$_d_break = 0
$_d_y = 1970
$_d_m = 1
$_d_d = ROUND(($_t_t / (3600 * 24)) - $_d_voi, 0) + 1
WHILE($_d_break = 0)
$_d_arg1 = $_d_y-1968
$_d_arg2 = 4
IF($_d_arg1-(ROUND(($_d_arg1/$_d_arg2)-$_d_voi,0)*$_d_arg2) = 0)
$_d_nd = 366
ELSE
$_d_nd = 365
END_IF
if($_d_d > $_d_nd)
INC($_d_d, 0-$_d_nd)
INC($_d_y, 1)
ELSE
$_d_break = 1
END_IF
END_CYC
$_d_break = 0
WHILE($_d_break = 0)
$_d_arg1 = $_d_y-1968
$_d_arg2 = 4
IF( ($_d_arg1-(ROUND(($_d_arg1/$_d_arg2)-$_d_voi,0)*$_d_arg2) = 0) & ($_d_m = 2) )
$_d_nd = 29
ELSE
$_d_nd = INT(STRCUT("31,28,31,30,31,30,31,31,30,31,30,31", (($_d_m-1) * 3) + 1, 2))
END_IF
IF($_d_d > $_d_nd)
INC($_d_d, 0-$_d_nd)
INC($_d_m, 1)
ELSE
$_d_break = 1
END_IF
END_CYC
END_SUB
U_DATE($_time_t+1209600) // вызываем подпрограмму с параметрами текущее время плюс две недели
LOGWRITE ($_d_d,".",$_d_m,".",$_d_y) // в эти переменные выводится день, месяц и год (Смотри лог)
HALT
-
спасибо.
добавил еще
IF(STRLEN($_d_d)<2)
$_d_d = STRCONCAT ("0", $_d_d)
END_IF
IF(STRLEN($_d_m)<2)
$_d_m = STRCONCAT ("0", $_d_m)
END_IF
IF(STRLEN($_d_y)<2)
$_d_y = STRCONCAT ("0", $_d_y)
END_IF
чтоб формат был dd.mm.yyyy