Добрый день.
Делаю расписание для включения/отключения установки, а также для задачи уставки на определенный период времени.
Проблемы с переходом времени в новые сутки, ну и с моей логикой. Я еще не программист, только начинаю изучать данное ремесло.
Призываю коллективный разум на помощь. Заранее благодарю всех за участие и помощь.
Дальше код и пояснение проблем с которыми столкнулся.
Код:
if (Расписание_ВКЛ_ВЫКЛ=TRUE) and (Индикатор сезона=1) THEN
if (ПН=TRUE) THEN
if ((Сейчас_время>=Время_вкл) and (Сейчас_время<Время_выкл) and (День_недели=1)) then
Выход:=10; Флаг:=true;
ELSE Выход:=5; Флаг:=false;
end_if;
end_if;
if (ВТ=TRUE) THEN
if ((Сейчас_время>=Время_вкл) and (Сейчас_время<Время_выкл) and (День_недели=2)) then
Выход:=10; Флаг:=true;
ELSE Выход:=5; Флаг:=false;
end_if;
end_if;
if (СР=TRUE) THEN
if ((Сейчас_время>=Время_вкл) and (Сейчас_время<Время_выкл) and (День_недели=3)) then
Выход:=10; Флаг:=true;
ELSE Выход:=5; Флаг:=false;
end_if;
end_if;
if (ЧТ=TRUE) THEN
if ((Сейчас_время>=Время_вкл) and (Сейчас_время<Время_выкл) and (День_недели=4)) then
Выход:=10; Флаг:=true;
ELSE Выход:=5; Флаг:=false;
end_if;
end_if;
if (ПТ=TRUE) THEN
if ((Сейчас_время>=Время_вкл) and (Сейчас_время<Время_выкл) and (День_недели=5)) then
Выход:=10; Флаг:=true;
ELSE Выход:=5; Флаг:=false;
end_if;
end_if;
if (СБ=TRUE) THEN
if ((Сейчас_время>=Время_вкл) and (Сейчас_время<Время_выкл) and (День_недели=6)) then
Выход:=10; Флаг:=true;
ELSE Выход:=5; Флаг:=false;
end_if;
end_if;
if (ВС=TRUE) THEN
if ((Сейчас_время>=Время_вкл) and (Сейчас_время<Время_выкл) and (День_недели=7)) then
Выход:=10; Флаг:=true;
ELSE Выход:=5; Флаг:=false;
end_if;
end_if;
end_if;
Проблемы:
1. 24 часа в сутках. При условии (Сейчас_время>=8:00) and (Сейчас_время<18:00), в промежутке между 8:00-18:00 код работает.
Но если задать условие (Сейчас_время>=8:00) and (Сейчас_время<00:01) тогда код оказывается неработоспособным, по причине невыполнения условия.
Задать точку включения днем и точку выключения ночью не получается, используя данную логику.
2. И еще не могу придумать, как привязаться к дню недели. К примеру точка включения днем в понедельник 8:00 и точка выключения 00:01(а это уже вторник). Если мне нужно использовать расписание только в понедельник, получается, что я не могу даже использовать "ИЛИ"(понедельник или вторник). Если мне нужно в понедельник использовать расписание, а точка выключения оказывается ночью во вторник, то не получается привязаться к условия "понедельник".
Логика подсказывает что многие решали подобную задачу.
Покажите свои решения подобной задачи. Расскажите, как вам удалось придти к решению?
Призываю коллективный разум на помощь. Заранее благодарю всех за участие и помощь.