Проверка на то выходной завтра или нет

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

IrisKo
Сообщения: 60
Зарегистрирован: Пт фев 15, 2019 12:19 pm
Благодарил (а): 19 раз
Поблагодарили: 4 раза

Проверка на то выходной завтра или нет

Сообщение IrisKo » Чт мар 05, 2020 11:21 am

Всем доброго времени суток :)
Есть цель делать проверку на то выходной завтра или нет и исходя из этого устанавливать время ночного режима. Решила делать это через функции isWeekEnd() isWeekDay(). Они хорошо справляются определяя выходной на текущую дату, а вот как быть с будущим?
Написала следующий код:

Код: Выделить всё

$tt=time()+86400;
if(isWeekEnd($tt)){
sg('ClockChime.TomorrowIsWeekend',1);
}
elseif(isWeekDay($tt)){
 sg('ClockChime.TomorrowIsWeekend',0);
}
else
 sg('ClockChime.TomorrowIsWeekend',"error");//временно для проверки
но какие бы временные метки я не подставляла вместо переменной $tt хоть 8 марта хоть новый год :) код все равно выдает "0". Почему?
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

Re: Проверка на то выходной завтра или нет

Сообщение Logrus » Чт мар 05, 2020 12:02 pm

а зачем для решения этой задачи будущее?
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
fandaymon
Сообщения: 1570
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 40 раз
Поблагодарили: 578 раз

Re: Проверка на то выходной завтра или нет

Сообщение fandaymon » Чт мар 05, 2020 2:40 pm

IrisKo писал(а):
Чт мар 05, 2020 11:21 am
Всем доброго времени суток :)
Есть цель делать проверку на то выходной завтра или нет и исходя из этого устанавливать время ночного режима. Решила делать это через функции isWeekEnd() isWeekDay(). Они хорошо справляются определяя выходной на текущую дату, а вот как быть с будущим?
Написала следующий код:

Код: Выделить всё

$tt=time()+86400;
if(isWeekEnd($tt)){
sg('ClockChime.TomorrowIsWeekend',1);
}
elseif(isWeekDay($tt)){
 sg('ClockChime.TomorrowIsWeekend',0);
}
else
 sg('ClockChime.TomorrowIsWeekend',"error");//временно для проверки
но какие бы временные метки я не подставляла вместо переменной $tt хоть 8 марта хоть новый год :) код все равно выдает "0". Почему?
Потому что это встроенные функции Мажордомо и они не предполагают передачу параметров. Собственно они всего лишь вычисляют номер дня в неделе

Код: Выделить всё

if (date('w') == 0 || date('w') == 6)
Т.е. можно написать так

Код: Выделить всё

$tt=time()+86400;
if (date('w',$tt) == 0 || date('w',$tt) == 6) {
sg('ClockChime.TomorrowIsWeekend',1);
}
else {
 sg('ClockChime.TomorrowIsWeekend',0);
}
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

Re: Проверка на то выходной завтра или нет

Сообщение Logrus » Чт мар 05, 2020 2:49 pm

вот в чек режима в свич день недели и задать отличающееся время

и оформить к примеру так https://connect.smartliving.ru/addons/c ... 6/177.html
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
IrisKo
Сообщения: 60
Зарегистрирован: Пт фев 15, 2019 12:19 pm
Благодарил (а): 19 раз
Поблагодарили: 4 раза

Re: Проверка на то выходной завтра или нет

Сообщение IrisKo » Чт мар 05, 2020 5:22 pm

То есть они никак не взаимодействуют с модулем "календарь" и все те категории где ставятся галочки что это праздничный или рабочий день в календаре ни на что не влияют? Проблема в том что эти 0 и 6 никак не учитывают что субботы и воскресенья могут быть рабочими, а будни могут быть праздниками. Какой тогда смысл вообще в этой функции...номер дня недели и без нее вычислить не проблема :(
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Re: Проверка на то выходной завтра или нет

Сообщение xor » Чт мар 05, 2020 5:38 pm

IrisKo писал(а):То есть они никак не взаимодействуют с модулем "календарь" и все те категории где ставятся галочки что это праздничный или рабочий день в календаре ни на что не влияют? Проблема в том что эти 0 и 6 никак не учитывают что субботы и воскресенья могут быть рабочими, а будни могут быть праздниками. Какой тогда смысл вообще в этой функции...номер дня недели и без нее вычислить не проблема :(
Есть решение на форуме-альтернатива штатной функции определения рабочего/выходного дня с учётом праздников и переноса выходных. Найдется по Производственный календарь. Я ещё добавляю анализ на отпуск в календаре

Отправлено с моего Redmi 4X через Tapatalk

fandaymon
Сообщения: 1570
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 40 раз
Поблагодарили: 578 раз

Re: Проверка на то выходной завтра или нет

Сообщение fandaymon » Чт мар 05, 2020 6:16 pm

IrisKo писал(а):
Чт мар 05, 2020 5:22 pm
То есть они никак не взаимодействуют с модулем "календарь" и все те категории где ставятся галочки что это праздничный или рабочий день в календаре ни на что не влияют? Проблема в том что эти 0 и 6 никак не учитывают что субботы и воскресенья могут быть рабочими, а будни могут быть праздниками. Какой тогда смысл вообще в этой функции...номер дня недели и без нее вычислить не проблема :(
Эти функции с календарём никак не связаны, так как модуля Календарь может и не быть в системе. Собственно Праздники и Перенесенные рабочие в календаре не так давно появились, по-моему прошлой осенью мы с Максимом их дописывали. Весь функционал определения рабочий/не рабочий в модуле есть
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Re: Проверка на то выходной завтра или нет

Сообщение xor » Чт мар 05, 2020 6:35 pm

fandaymon писал(а):
IrisKo писал(а):
Чт мар 05, 2020 5:22 pm
То есть они никак не взаимодействуют с модулем "календарь" и все те категории где ставятся галочки что это праздничный или рабочий день в календаре ни на что не влияют? Проблема в том что эти 0 и 6 никак не учитывают что субботы и воскресенья могут быть рабочими, а будни могут быть праздниками. Какой тогда смысл вообще в этой функции...номер дня недели и без нее вычислить не проблема :(
Эти функции с календарём никак не связаны, так как модуля Календарь может и не быть в системе. Собственно Праздники и Перенесенные рабочие в календаре не так давно появились, по-моему прошлой осенью мы с Максимом их дописывали. Весь функционал определения рабочий/не рабочий в модуле есть
Перенесённые поправили? А то там какая-то ошибка, вроде, была

Отправлено с моего Redmi 4X через Tapatalk

fandaymon
Сообщения: 1570
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 40 раз
Поблагодарили: 578 раз

Re: Проверка на то выходной завтра или нет

Сообщение fandaymon » Чт мар 05, 2020 6:39 pm

xor писал(а):
Чт мар 05, 2020 6:35 pm
fandaymon писал(а):
IrisKo писал(а):
Чт мар 05, 2020 5:22 pm
То есть они никак не взаимодействуют с модулем "календарь" и все те категории где ставятся галочки что это праздничный или рабочий день в календаре ни на что не влияют? Проблема в том что эти 0 и 6 никак не учитывают что субботы и воскресенья могут быть рабочими, а будни могут быть праздниками. Какой тогда смысл вообще в этой функции...номер дня недели и без нее вычислить не проблема :(
Эти функции с календарём никак не связаны, так как модуля Календарь может и не быть в системе. Собственно Праздники и Перенесенные рабочие в календаре не так давно появились, по-моему прошлой осенью мы с Максимом их дописывали. Весь функционал определения рабочий/не рабочий в модуле есть
Перенесённые поправили? А то там какая-то ошибка, вроде, была

Отправлено с моего Redmi 4X через Tapatalk
Вроде бы поправил. Должны работать - в прошлом году после правок проверял, работало правильно
За это сообщение автора fandaymon поблагодарил:
xor (Чт мар 05, 2020 7:02 pm)
Рейтинг: 1.16%
IrisKo
Сообщения: 60
Зарегистрирован: Пт фев 15, 2019 12:19 pm
Благодарил (а): 19 раз
Поблагодарили: 4 раза

Re: Проверка на то выходной завтра или нет

Сообщение IrisKo » Вс мар 08, 2020 3:52 pm

fandaymon писал(а):
Чт мар 05, 2020 6:16 pm
Весь функционал определения рабочий/не рабочий в модуле есть
Почему то не могу там его найти :( Сам календарь заполнила, а вот как к нему обращаться и как у него "спрашивать" какой день рабочий а какой нет понять не могу. Была уверена что как раз те функции о которых писала в своем первом сообщении для этого и существуют, а оказалось что нет. Если не сложно можете дать ссылочку на описание этого функционала модуля календаря, на какую то инструкцию что ли?
Ответить