Я пытаюсь разработать резервирование (если можно так сказать), в основном, когда пользователь достигает конечной точки, он должен возвращать все доступные дни, но я обнаруживаю много трудностей, потому что есть много крайних случаев, и я сомневаюсь, что уже существует алгоритм, который делает это, что у вас, ребята, есть лучшее решение, потому что у меня уже есть что-то, но оно похоже на Франкенштейна.
Что он делает в основном. Во-первых, у меня есть функция в Postgres, которая фильтрует все встречи по имени работника.
Выше указаны недоступные часы, поэтому на их основе мне нужно найти доступные часы. Допустим, эта конкретная «парикмахерская» открывается в 08:00 и закрывается в 18:00. Доступные часы должны быть примерно такими.
Код: Выделить всё
[05/03-08:00, 05/03-08:50, 05/03-12:50] and so on...
пока эта часть не будет простой, и я решу сам, кстати, это зависит от продолжительности услуг, поэтому все могло бы быть иначе, если бы продолжительность составляла, например, 20 минут. Но дело в том, что я заполняю массив за весь месяц, могу ошибаться, возможно, я мог бы привести доступный час на основе недели и сделать своеобразную нумерацию страниц, если пользователь запросит дополнительные недели. Но в крайних случаях список пуст? Я просто заполняю его в зависимости от продолжительности, но если пользователь выполняет поиск сегодня (03.05), а первая встреча приходится на день 03.09, как мне обрабатывать разделенные дни.
конечно, в этом случае arr
!= arr[i+1] поэтому я могу знать, изменился ли день, но мне нужно заполнить все часы для дня 05/03, поскольку это единственный час в этот день, и мне нужно заполнить и часы для дня 08, дней после открытия и перед закрытием, и мне нужно заполнить этот пробел между днями 08 и 05 (т. е. 06 и 07). Но, конечно, я могу споткнуться, и это худший способ сделать это.
Подробнее здесь: https://stackoverflow.com/questions/799 ... ode-but-no