Я должен реализовать решение, в котором два диапазона дат могут перекрывать друг друга. в перекрывающиеся даты я должен посчитать, сколько дней перекрывают друг друга. После того, как я узнаю о перекрывающихся днях, я смогу рассчитать итоговую цифру на основе цены за день.
Сценарий будет таким:
Клиент бронирует отель
Даты бронирования клиентов - с 17.02.2011 по 26.02.2011
Обычная цена (в течение всего года) - 01.01.2011 - 31.12.2011 (цена за день: $ 30,00)
Специальное предложение 1 с 01.01.2011 по 19.02.2011 (цена за день: 20,00 $)
Специальное предложение на 2 даты - с 17.02.2011 по 24.02.2011 (цена за день: 10,00 $)
В приведенном выше сценарии предложенный алгоритм должен выработать самое дешевое предложение, в котором диапазоны дат перекрываются, и определить цену для бронирования. Если нет специального предложения, он использует обычную цену.
Таким образом, в течение первых двух дней система должна получать цену из «специального предложения 1», поскольку это самая дешевая из доступных цен. Следующие 5 дней должны быть "Специальное предложение 2 цена", а в течение следующих 2 дней это будет обычная цена.
Буду признателен за ответы как на SQL (с использованием MS-SQL Server), так и на базовый код для получения представлений diffrenet.
Надеюсь, вопрос ясен, и я смотрю вперед, чтобы увидеть ответы.
Большое спасибо заранее