Честно признаться - задача не из легких и чтобы реализовать ее самостоятельно мне потребовалось много времени. Сейчас я уже полностью завершил статью и с момента написания первых строк прошло более месяца. Столько я шел к ее решению, попутно пытаясь оптимизировать и упростить восприятие.
К сожалению банальное прибавление срока доставки к операторам DAY, MONTH, YEAR не дает нужного результата. Например в конце месяца мы бы получили 32 апреля - это никуда не годится.
Постановка задачи и ключевые моменты
Вывести предполагаемую дату доставки вида DD.MM.YYYY, если известно, что доставка производится по средам.
- Имеются коды вывода DAY (1...31), MONTH (1...12), YEAR (YYYY). Необходимо подставить 0 перед датой и месяцем, которые меньше 10, чтобы получить не 1.1.2012, а 01.01.2012;
- Необходимо учесть месяцы, в которых 31 день (01,03,05,07,08,10,12). При оформлении заказа после 29 числа - прибавлять к месяцу единицу. Исключение составляет декабрь
...
Читать дальше »