Затем сравните результаты, если оба допустимых диапазона. Т.е. начало <конец. В противном случае нет допустимого диапазона.

тим, у меня есть 2 диапазона дат.

Эти диапазоны дат могут быть представлены как промежутки времени.

Я хочу найти диапазон дат, который попадает в два промежутка времени.

Range 1: 2/1/2011 - 8/1/2011 (timespan of 6 months)
Range 2: 5/2/2011 - 5/28/2011 (timespan of 26 days)

поэтому в этом случае пересечение будет 5/2 / 2011-5 / 28/2011, но диапазоны могут двигаться в любом направлении (или вообще не пересекаться, и в этом случае я бы хотел, чтобы результирующий временной интервал был равен 0 длины )

в конце мне нужны календарные даты начала / конца результирующего промежутка времени пересечения (не только тики / часы / дни и т. д.)

Есть ли элегантный способ сделать это в C # 3.0?

ОБНОВИТЬ

я взял код StriplingWarriors и создал из него метод ..

    private static DateRange GetIntersectionRange(DateRange range1, DateRange range2) {
        var iRange = new DateRange();
        iRange.From = range1.From < range2.From ? range2.From : range1.From;
        iRange.To = range1.To < range2.To ? range1.To : range2.To;
        if (iRange.From > iRange.To) iRange = null;
        return iRange;
    }

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

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