Сайт кондитерской: до какого дня принимать заказ торта на выбранную дату

Покупатель выбирает торт на понедельник. Рядом с календарём написано «заказывайте за два рабочих дня», а форма разрешает оплату в пятницу вечером. Для владельца кондитерской два дня означали четверг и пятницу, для разработчика — любые двое суток. Оба видели одинаковую подпись, но реализовали разные обещания.
Пять решений до макета календаря
- Какое событие запускает срок?
- Отправка заявки, подтверждение состава, поступление оплаты или другое согласованное событие. Незавершённая переписка не обязана считаться принятым заказом.
- Какие дни участвуют?
- Фактические рабочие даты нужной мастерской, включая её отдельные выходные. Государственный календарь сам по себе их не определяет.
- Считается ли день приёма?
- В примере ниже считается, только если заказ принят строго раньше установленного часа.
- Считается ли дата выдачи?
- В нашей модели нет: все необходимые даты подготовки находятся раньше неё.
- Что делать ровно в пороговое время?
- Здесь 12:00 уже поздно, а 11:59 ещё проходит календарное условие. Другую договорённость нужно явно закрепить.
Это собственная учебная конвенция, а не обязательный стандарт торговли. «Два учитываемых рабочих дня» здесь не означают две полные смены или сорок восемь часов изготовления. Если вашему процессу нужны непрерывная выдержка, охлаждение или конкретное количество часов, такой календарь не заменит технологический график.
Разберите понедельник на конкретных датах
Пусть выдача назначена на 26 октября 2026 года, понедельник. Мастерская работает с понедельника по пятницу. Требуются две рабочие даты подготовки до выдачи, приём на стартовую дату закрывается в 12:00. Календарь отсчитывается назад: пятница 23 октября — вторая дата подготовки, четверг 22 октября — первая. Значит, условие по времени: заказ принят раньше 22 октября 12:00.
| Режим подготовки | Учитываемые даты | Приём на выбранную выдачу | Почему |
|---|---|---|---|
| Пн–Пт, без исключений | 22 и 23 октября | До 22 октября 12:00, строго | Суббота и воскресенье не участвуют |
| 23 октября отдельно закрыто | 21 и 22 октября | До 21 октября 12:00, строго | Пятничное исключение сдвигает начало назад |
| 24 октября отдельно открыто | 23 и 24 октября | До 23 октября 12:00, строго | Рабочая суббота добавляет дату перед выдачей |
| 26 октября закрыта сама выдача | Не подбираются | Эта дата не подходит по календарю | Ранний заказ не открывает закрытую точку |
Последние три строки — отдельные изменения исходного режима, а не накопление всех исключений сразу. Даты и часы вымышлены для проверки правил; они не являются рекомендацией по производству тортов или готовым праздничным календарём.
Почему нельзя вычесть число из дня месяца
Выдача в понедельник не превращает субботу и воскресенье в рабочие дни. А одно исключение на пятницу может перенести порог через границу недели или месяца. Программа должна пройти реальные календарные даты, применить для каждой рабочий режим и только затем отсчитать нужное количество.
Специальная запись заменяет обычное правило для своей даты. Если суббота обычно закрыта, open открывает только указанную субботу; все следующие не меняются. Если пятница обычно рабочая, closed исключает именно эту пятницу. Две противоречащие записи на одну дату не должны молча побеждать в зависимости от порядка строк.
Порог относится к часам мастерской
Покупатель может заказывать из другого региона. На сайте нужно написать, по какому часовому поясу действует ограничение, и проверять момент на сервере. В учебной форме все значения уже приведены к одним местным календарным часам. Она не преобразует зоны, не использует часы компьютера для решения и не вычисляет фактические часы между событиями.
Проверка для технического задания
Укажите желаемую дату выдачи, от одной до шестидесяти учитываемых дат подготовки, общий порог HH:MM, рабочие дни недели и исключения. Дни недели задаются числами 1–7: понедельник–воскресенье. Пустая неделя означает отсутствие регулярных рабочих дней; отдельно открытые даты всё ещё действуют.
Форма сначала проверяет саму дату выдачи. Если она открыта, ищет нужное количество рабочих дат строго перед ней в пределах предыдущих 366 календарных дат. Список показывает наиболее поздний возможный набор по введённой конвенции, а не фактически забронированный план производства. Если дней в этом окне недостаточно, форма сообщает ограничение поиска, а не объявляет заказ невозможным навсегда.
Проверьте три момента вокруг порога
- Оставьте пример без исключений: выдача 26 октября, подготовка два дня, порог 12:00.
- При принятии 22 октября в 11:59 календарное условие должно выполняться.
- В 12:00 и 12:01 оно уже не выполняется. Затем закройте 23 октября и повторите проверку: порог должен стать 21 октября 12:00.
Рабочая корзина обязана повторять проверку перед фиксацией заказа. Если человек открыл страницу утром, а оплату начал после порога, первоначально доступная дата не должна оставаться подтверждённой только из-за старого экрана.
Что ещё потребуется, чтобы принимать оплату
Календарное условие не подтверждает свободного кондитера, наличие ингредиентов, вместимость холодильника, согласованный декор или возможность курьера приехать вовремя. Форма не распределяет мощность между заказами, не резервирует слот и не проверяет безопасность продукта. Даже результат «условие выполнено» оставляет эти проверки отдельному процессу.
При заказе интернет-магазина передайте разработчику правила приёма, календарь мастерской, список исключений и примеры на границах. Отдельно согласуйте, где показываются недоступные даты, кто меняет режим и как объясняется отказ. Так календарь станет частью реального оформления, а не украшением рядом с полем пожеланий. Стоимость такого проекта зависит от согласованного состава: эта форма не выставляет цену и не создаёт заказ на разработку.
Найти порог приёма предзаказа к выбранной дате
Одна мастерская и одна местная календарная шкала без преобразования часовых поясов. Выдача только в открытую дату. День старта учитывается при принятии строго до порога; дата выдачи не входит в подготовку. Поиск назад до366 календарных дат, даты1900–2099, до120 исключений. Без автопраздников, мощности, технологических часов, сроков годности, доставки, оплаты или брони. Расчёт выполняется на вашем устройстве, введённые данные никуда не отправляются.
Материалы для проверки
Если нужна реализация
Состав работ зависит от текущего проекта и подтверждённой причины. Можно обсудить диагностику или разработку подходящего решения.
