Помогите с логикой
- Войдите на сайт для отправки комментариев
Ср, 08/08/2018 - 02:02
Есть код. Язык си-подобный.
функция getlocaltime возвращает в указанные переменные локальное время на компе.
суть логики: если сейчас от 21 вечера до 1 ночи, то скрипт ждет когда наступит 1:15 ночи или больше.
пример:
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds; getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds); if(Hour>=21 && Hour<=1) { for(sleep(10); Hour!=1 && Minute<15; getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds)) { beep(500, 100); sleep(1000); } }
Как обойти эту фигню, что Hour не может быть одновременно и больше и 21 и меньше 1?
В данном случае, думаю, поможет замена "И" на "ИЛИ".
Врооооде бы вот так вот работает. Если сейчас от 20 до 0 ночи, то ждем 1:11
меньшеРавно, а не меньше часа.
А зачем вообще здесь цикл for? Наиболее подходящим ИМХО здесь while. И программа была бы более читаемой.