Определить количество дней недели в промежутке времени

Все вопросы/проблемы по установке и использовании.
Ответить
bmite
Сообщения: 9
Зарегистрирован: 28 июн 2018, 23:24
Имя: Эдуард
Откуда: Россия, Курск

Определить количество дней недели в промежутке времени

Сообщение bmite »

Здравствуйте! У меня есть две даты, мне нужно определить, сколько (например) понедельников в этом промежутке времени? Стандартная функция "Разница в днях" и ее настройка мне не подходят. Буду благодарен любой информации.
Аватара пользователя
Евгений
Сообщения: 398
Зарегистрирован: 11 июл 2016, 13:21
Имя: Евгений
Откуда: Петропавловск-Камчатский

Re: Определить количество дней недели в промежутке времени

Сообщение Евгений »

Пусть Дата1 начальная и Дата2 конечная даты заданного промежутка. Тогда делаем так:

1. Сдвигаем обе даты назад на одинаковое количество дней, равных номеру дня недели у Дата1.
2. Вычисляем разницу в днях, которую делим нацело на 7. Полученное число даёт неполное количество понедельников между двумя датами. Может не хватать одного дня, который попадает в остаток от деления.
3. Сравниваем номер дня недели у Дата2 с номером искомого дня (например понедельник == 1). Если первое число больше второго, тогда к числу из п.2 добавляем 1.

Можно свернуть всё в одну формулу, чтобы подставить в поле MySQL. Хотя я бы просто вынес в хранимую функцию СУБД.
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Определить количество дней недели в промежутке времени

Сообщение support »

Делайте хранимую функцию, подсмотреть код можно в поле "Разница в днях". Хранимую функцию можно использовать в формулах.
bmite
Сообщения: 9
Зарегистрирован: 28 июн 2018, 23:24
Имя: Эдуард
Откуда: Россия, Курск

Re: Определить количество дней недели в промежутке времени

Сообщение bmite »

Спасибо за рекомендации, но моих "суперсособностей" в программировании не хватило и я пошел по другому нубскому пути.
Возможно кому-то поможет
Я посчитал через стандартную функцию (Разница в днях) по раздельности для:
ПН, ВТ, СР, ЧТ, ПТ, СБ, ВС
И в зависимости от того, какой день недели мне требуется - вывел число и сделал расчет.
Ответить