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

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
68
Баллы
28
Добрый день. Есть непрерывный цыкал ... Нужно создать пузу 15 минут в определенно время с 23:55 по 0:10 Как это можно сделать? когда пройдет время 0:10 выходит из паузы и работает дальше...
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 660
Благодарностей
1 332
Баллы
113
если понимаете в C# то это очень легко.
Для начала нужно перевести нужное вам время 23:55 в юникстайм в секунды, за тем получаем время компьютера в юникстайм так же в секундах. Далее сравниваем с помощью if если полученное время больше либо равно >= тому что мы перевели 23:55 то делаем цикл:
15 минут = 900 секундам = 90 циклам по 10 секунд.
Сначала пишите цикл, который будет выполнятся < 90 раз. В цикле получаете время компьютера, переводите его в юникстайм, в секунды, и так же к 23:55 добавляете +15 минут и переводите в юникс тайм в секунды, за тем сравниваете через if если 00:05 (в секундах) больше чем текущее время компьютера, то становитесь на паузу в 10 сек, а если не больше либо равно то выходите из цикла. Такая логика)
 
  • Спасибо
Реакции: art22

cportal

Client
Регистрация
16.04.2013
Сообщения
140
Благодарностей
30
Баллы
28
Добрый день. Есть непрерывный цыкал ... Нужно создать пузу 15 минут в определенно время с 23:55 по 0:10 Как это можно сделать? когда пройдет время 0:10 выходит из паузы и работает дальше...

Вариантов много как сделать, получай текущее время проверяй...

Пример

C#:
var Hour =  DateTime.Now.Hour; //текущий час
var Minute =  DateTime.Now.Minute; //текущая минута

if(Hour == "23" && Minute == "55"){ // Если час 23 и минут 55
    System.Threading.Thread.Sleep(600000); // пауза 10 мин
}
 
  • Спасибо
Реакции: art22

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
68
Баллы
28
Вариантов много как сделать, получай текущее время проверяй...
Если время будет больше 23; 55 скажем 23: 57 на паузу встанет? нужно чтобы и после этого времени встал на пузу


Компиляция кода Ошибка в действии "CS0019" "Оператор "==" не может применяться к операндам типа "int" и "string"". [Строка: 3; Cтолбец: 4]

Компиляция кода Ошибка в действии "CS0019" "Оператор "==" не может применяться к операндам типа "int" и "string"". [Строка: 3; Cтолбец: 20]

такие ошибки вышли
 

cportal

Client
Регистрация
16.04.2013
Сообщения
140
Благодарностей
30
Баллы
28
Если время будет больше 23; 55 скажем 23: 57 на паузу встанет? нужно чтобы и после этого времени встал на пузу


Компиляция кода Ошибка в действии "CS0019" "Оператор "==" не может применяться к операндам типа "int" и "string"". [Строка: 3; Cтолбец: 4]

Компиляция кода Ошибка в действии "CS0019" "Оператор "==" не может применяться к операндам типа "int" и "string"". [Строка: 3; Cтолбец: 20]

такие ошибки вышли
Вот ;-)

Если нужно после 55, то меняешь ровно на больше или равно

C#:
var Hour =  DateTime.Now.Hour; //текущий час
var Minute =  DateTime.Now.Minute; //текущая минута

if(Hour == 23 && Minute >= 55){ // Если час 23 и (минут 55 или больше)
    System.Threading.Thread.Sleep(600000); // пауза 10 мин
}
 
  • Спасибо
Реакции: art22

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 387
Баллы
113
C#:
var Hour =  DateTime.Now.Hour; //текущий час
var Minute =  DateTime.Now.Minute; //текущая минута

if((Hour == 23 && Minute >= 55) || (Hour == 0 && Minute < 10)){ // Если попал в цикл в любой момент из указанного промежутка времени
    while(DateTime.Now.Minute < 10)
        System.Threading.Thread.Sleep(1000); // выход из паузы по окончании этого промежутка
}
Так точнее будет.
 
  • Спасибо
Реакции: art22

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
68
Баллы
28
Спасибо попробую)
 

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