|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.11.2016, 12:40 | #1 |
Регистрация: 05.11.2016
Сообщений: 5
|
Диапазон времени для будильника
Добрый день, требуется например с 23:30 до 7:45 утра исполнять какое-либо действие, в остальное время другое. Т.е. время начала исполнения всегда больше времени окончания. Уперся в то что после 23 часов идёт 0 часов.
|
05.11.2016, 14:19 | #2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Не понятен контекст задачи... Я предлагаю активно использовать "условные операторы ветвления" (вот начало, а дальше по кругу; свой код пишешь после "определяемся с часами"):
18.jpg Последний раз редактировалось ura_111; 05.11.2016 в 14:21. |
05.11.2016, 14:46 | #3 | |
Регистрация: 05.11.2016
Сообщений: 5
|
Цитата:
|
|
05.11.2016, 15:51 | #4 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Если нужно, чтобы программа понимала что её включили в 8:00, значит нужно работать с системным временем...
Я не буду рассматривать интервал от 23:30 до 7:45 (это логическая ловушка, в которую ты хочешь чтобы я попал); лучше рассмотрю время от 0:00 до 24:00. Обрати внимание, что в рассмотренном интервале минуты постоянно повторяются, а часы - никогда. Значит можно ввести идентификатор, переменную равную: Код:
Код:
18.jpg p.s.: я особо не тестировал выпадание "FLAG", поэтому - хорошенько протестируй (рассмотри разное время входа в программу) и допиши бесконечный цикл while()... В принципе можешь предусмотреть и выход из программы... Последний раз редактировалось ura_111; 05.11.2016 в 16:04. |
05.11.2016, 17:56 | #5 |
Регистрация: 05.11.2016
Сообщений: 5
|
Для диапазона от 0:00 до 24:00 (начало меньше окончания) всё просто, так же обхожусь обычным if else - если >= "начало" и < "окончание". Вот второй вариант с началом больше окончания ставит в тупик ) Ладно, есть пара мыслей, надо пробовать. Просто думал возможно есть решение которое все используют)
|
05.11.2016, 20:20 | #6 |
Форумчанин
Регистрация: 24.01.2011
Сообщений: 774
|
А что мешает сделать так?
Код:
a.k.a. Angelicos Phosphoros
Мой сайт Последний раз редактировалось New man; 05.11.2016 в 20:43. |
05.11.2016, 20:54 | #7 |
Регистрация: 05.11.2016
Сообщений: 5
|
Всё не ограничивается простым ИЛИ. Важно чтоб программа при включении сразу понимала в диапазоне она или вне его и т.д. Я ставлю флаг в 0 и 1 если в диапазоне и нет. Просто в моих вариантах некоторые проверки пересекаются с другими, либо не описывают какой-либо возникший момент и происходит внештатная ситуация.
Вцелом решение похоже нашел, но пока требуется расширенное тестирование варианта |
07.11.2016, 22:03 | #9 |
Регистрация: 05.11.2016
Сообщений: 5
|
Отчасти да, такой вариант я тоже использовал (t< END || t> START), но в обратной проверке нужно было проверять обратный условию диапазон и желательно с &&, чтоб устройство точно знало в каком из диапазонов оно находится. Получается что ИЛИ в первой проверке уже пересекается с И во второй.
Задача решена, я просто проверяю диапазон обратный от того что пересекает границу в 0 часов ) |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Эволюция рингтонов будильника | min@y™ | Свободное общение | 20 | 10.05.2016 14:49 |
Мелодия будильника по умолчанию | Damik | Общие вопросы Delphi | 1 | 10.05.2013 21:16 |
диапазон времени действия(сист дата+-14 дней) | slavikus | Помощь студентам | 9 | 23.07.2011 09:45 |
как задать диапазон времени | Dmitrys | Microsoft Office Excel | 3 | 11.02.2011 16:51 |
диапазон времени | chekanoff | БД в Delphi | 34 | 02.03.2008 01:28 |