Рубин: пересечение двух диапазонов

В ruby, учитывая два диапазона дат, я хочу диапазон, представляющий пересечение двух диапазонов дат, или ноль, если пересечения нет. Например:

(Date.new(2011,1,1)..Date.new(2011,1,15)) & (Date.new(2011,1,10)..Date.new(2011,2,15))
=> Mon, 10 Jan 2011..Sat, 15 Jan 2011

Изменить: Должен был сказать, что я хочу, чтобы он работал и для DateTime, поэтому интервал может быть уменьшен до минут и секунд:

(DateTime.new(2011,1,1,22,45)..Date.new(2011,2,15)) & (Date.new(2011,1,1)..Date.new(2011,2,15))
=> Sat, 01 Jan 2011 22:45:00 +0000..Tue, 15 Feb 2011

Ответы на вопрос(8)

Ваш ответ на вопрос