Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Без описания
Dantes3000
Отправлено: 20 Сентября, 2018 - 22:23:41
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




нужно сделать чтобы бип не происходил в период, который укажет пользователь. Будь то с 1 ночи по 6 утра, или с 18 вечера по 0 ночи

CODE:
int h1=22, h2=5; //с 22 ночи по 5 утра

alarm();

function alarm()
{
if(с 22 ночи по 5 утра) return;

beep(500, 500); //иначе бип
}
 
 Top
Kibor
Отправлено: 20 Сентября, 2018 - 22:31:44
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




?
getlocaltime

CODE:
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds;





int h1=22, h2=5; //с 22 ночи по 5 утра

loop() alarm();

function alarm()
{
getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds);
if(Hour>=h2 && Hour<h1) return;

beep(1500, 200); //иначе бип
}
 
 Top
Dantes3000
Отправлено: 20 Сентября, 2018 - 22:35:30
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




 Kibor пишет:
?
getlocaltime

это безусловно понятно, я упрощенно просто написал.

Сейчас 22часа. Пикает, а не должно. Ведь 20 не больше 22...Hour<h1

CODE:
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds;
int h1=20, h2=5; //с 22 ночи по 5 утра

alarm();

function alarm()
{
getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds);
if(Hour>=h2 && Hour<h1) return;

beep(1500, 200); //иначе бип
}

(Отредактировано автором: 20 Сентября, 2018 - 22:46:32)

 
 Top
Dantes3000
Отправлено: 21 Сентября, 2018 - 02:20:03
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




В общем...было трудно, но я справился.
CODE:
int startHour = 23, endHour = 8;
int currentHour = 9;
alarm();

function alarm();
{
if (startHour < endHour)
{
if (startHour <= currentHour && currentHour <= endHour ) return;
}
else
{
if ((startHour <= currentHour && currentHour <= 24) || currentHour == 0 || (0 <= currentHour && currentHour <= endHour )) return;
}
beep(500,500);

}
 
 Top
Kibor
Отправлено: 21 Сентября, 2018 - 12:32:03
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Dantes3000 пишет:
Сейчас 22часа. Пикает, а не должно. Ведь 20 не больше 22...Hour<h1


Ну так исправить
 Цитата:
if(Hour>=h1 || Hour<h2) return;


CODE:
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds;





int h1=22, h2=5; //с 22 ночи по 5 утра

loop() alarm();

function alarm()
{
getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds);
if(Hour>=h1 || Hour<h2) return;

beep(1500, 200); //иначе бип
}
 
 Top
Dantes3000
Отправлено: 21 Сентября, 2018 - 12:40:01
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




Kibor ,
 Dantes3000 пишет:
Будь то с 1 ночи по 6 утра, или с 18 вечера по 0 ночи


Условием в одну строчку эту задачу не решить.
 
 Top
Kibor
Отправлено: 21 Сентября, 2018 - 12:54:43
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Dantes3000 пишет:
Условием в одну строчку эту задачу не решить.


да ну?

CODE:
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds;

int h1=22, h2=5; //с 22 ночи по 5 утра
int a1=18, a2=24; //с 18 ночи по 0 ночи

loop() alarm();

function alarm()
{
getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds);
if((Hour>=h1 || Hour<h2) || (Hour>=a1 && Hour<a2)) return;

beep(1500, 200); //иначе бип
}
 
 Top
Zireael
Отправлено: 21 Сентября, 2018 - 13:08:31
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
int h1=22, h2=5; //с 22 ночи по 5 утра

С 1 до 6 не прокатит.
 Цитата:
Hour<a2

Час всегда меньше 24, условие не имеет смысла.
 
 Top
Kibor
Отправлено: 21 Сентября, 2018 - 13:22:53
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Zireael пишет:
С 1 до 6 не прокатит.
Цитата:
Hour
Час всегда меньше 24, условие не имеет смысла.


Я показал пример проверки в одну строку двух выражений (или сколько надо). Саму логику. Время оставил с первого примера. Это вообще не принципиально.

От того что будет меняться время ничего не изменится. Думаю идея понятна как надо делать.
CODE:
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds;

int h1=1, h2=6; //с 1 ночи по 6 утра
int a1=18, a2=24; //с 18 ночи по 0 ночи

loop() alarm();

function alarm()
{
getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds);
if((Hour>=h1 && Hour<h2) || (Hour>=a1 && Hour<a2)) return;

beep(1500, 200); //иначе бип
}
 
 Top
Zireael
Отправлено: 21 Сентября, 2018 - 13:33:23
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




CODE:
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds;
alarm(1, 6); //с 1 до 6
alarm(18, 2); //с 18 до 2

function alarm(int h1, int h2)
{
getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds);
// Hour = 20;
if((h1>h2 && Hour<h1 && Hour+24>=h2+24) || (h1<h2 && (Hour<h1 || Hour>=h2)))messagebox("Beep");
}
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by