Страница 1 из 2

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

Добавлено: Чт мар 05, 2020 11:21 am
IrisKo
Всем доброго времени суток :)
Есть цель делать проверку на то выходной завтра или нет и исходя из этого устанавливать время ночного режима. Решила делать это через функции 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". Почему?

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

Добавлено: Чт мар 05, 2020 12:02 pm
Logrus
а зачем для решения этой задачи будущее?

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

Добавлено: Чт мар 05, 2020 2:40 pm
fandaymon
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);
}

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

Добавлено: Чт мар 05, 2020 2:49 pm
Logrus
вот в чек режима в свич день недели и задать отличающееся время

и оформить к примеру так https://connect.smartliving.ru/addons/c ... 6/177.html

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

Добавлено: Чт мар 05, 2020 5:22 pm
IrisKo
То есть они никак не взаимодействуют с модулем "календарь" и все те категории где ставятся галочки что это праздничный или рабочий день в календаре ни на что не влияют? Проблема в том что эти 0 и 6 никак не учитывают что субботы и воскресенья могут быть рабочими, а будни могут быть праздниками. Какой тогда смысл вообще в этой функции...номер дня недели и без нее вычислить не проблема :(

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

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

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


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

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

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

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

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


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

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

Отправлено с моего Redmi 4X через Tapatalk
Вроде бы поправил. Должны работать - в прошлом году после правок проверял, работало правильно

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

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