Как заставить шаблон работать определённое время

slava1975

Client
Регистрация
12.09.2016
Сообщения
262
Благодарностей
17
Баллы
18
Доброго времени суток форумчане,как заставить шаблон работать по времени

Необходимо чтоб он работал по времени,например 2 часа,после этого автоматом отключался,скорее всего нужна переменная определяющая время START и переменная STOP,и через "if" сравнивать и танцевать далее ,но как определить в какое время стартанул шаблон????
Через расписание шаблон не останавливается во вкладке закончить в такое то время,внутри то процесс идёт зацыклиный
Помогите пожалуйста, заранее спасибо
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
при старте шаба, в самом начале в переменную START пишешь текущее время, в определенных местах сравниваешь разницу текущего времени и START с уставкой (например 2 часа). если больше то выходишь, если нетт то дальше идешь по логике.
 

slava1975

Client
Регистрация
12.09.2016
Сообщения
262
Благодарностей
17
Баллы
18
спасибо,а как определить текущее время?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
засекаем вермя:
project.Variables["Start_Time_Potok"].Value = DateTime.Now.ToString();
проверка таймаута:
//---- получение данных из переменных зенки ----
string Start_Time_Potok = project.Variables["Start_Time_Potok"].Value;
int Input_Max_Work_Time = 1200; try{  Input_Max_Work_Time = int.Parse(project.Variables["Max_TimeWork"].Value); } catch{  }
//---- формируем данные ----
DateTime now = DateTime.Now; DateTime End_Potok; 
End_Potok = DateTime.Parse(Start_Time_Potok).AddSeconds(Input_Max_Work_Time);         // считаем конечное время
//---- формирование условий ----
project.SendInfoToLog(now.ToString());
project.SendInfoToLog(End_Potok.ToString());
if ( End_Potok > now ) {  // проверка времени
    return 0;
} else throw new Exception();
применять так.

81992

в переменную Max_TimeWork закидываешь 7200 секунд
 

slava1975

Client
Регистрация
12.09.2016
Сообщения
262
Благодарностей
17
Баллы
18
приогромнейшее вам спосибо,все работает как автомат калашников
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
засекаем вермя:
project.Variables["Start_Time_Potok"].Value = DateTime.Now.ToString();
проверка таймаута:
//---- получение данных из переменных зенки ----
string Start_Time_Potok = project.Variables["Start_Time_Potok"].Value;
int Input_Max_Work_Time = 1200; try{  Input_Max_Work_Time = int.Parse(project.Variables["Max_TimeWork"].Value); } catch{  }
//---- формируем данные ----
DateTime now = DateTime.Now; DateTime End_Potok;
End_Potok = DateTime.Parse(Start_Time_Potok).AddSeconds(Input_Max_Work_Time);         // считаем конечное время
//---- формирование условий ----
project.SendInfoToLog(now.ToString());
project.SendInfoToLog(End_Potok.ToString());
if ( End_Potok > now ) {  // проверка времени
    return 0;
} else throw new Exception();
применять так.

Посмотреть вложение 81992

в переменную Max_TimeWork закидываешь 7200 секунд
Если время статичное, то можно сразу вычислить endTime и потом просто сравнивать текущее время и время конца вместо того, чтобы в цикле постоянно приплюсовывать его
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Если время статичное, то можно сразу вычислить endTime и потом просто сравнивать текущее время и время конца вместо того, чтобы в цикле постоянно приплюсовывать его
можно конечно. кому надо, тот переделает под себя. а у меня этот код был написан 1 раз 2 года назад и менять его пока нет ни желания ни времени :bk:
 

slava1975

Client
Регистрация
12.09.2016
Сообщения
262
Благодарностей
17
Баллы
18
можно конечно. кому надо, тот переделает под себя. а у меня этот код был написан 1 раз 2 года назад и менять его пока нет ни желания ни времени :bk:
Ваш код работает идеально,ещё раз спасибо
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)