Disons que j'ai 2 plages de dates.Intervalle de temps en C#
Ces plages de dates peuvent être représentées en tant que plages de temps.
Je veux trouver une plage de dates, qui tombe dans les deux intervalles de temps.
Range 1: 2/1/2011 - 8/1/2011 (timespan of 6 months)
Range 2: 5/2/2011 - 5/28/2011 (timespan of 26 days)
dans ce cas, l'intersection serait de 5/2/2011-5/28/2011, mais les plages peuvent se déplacer dans les deux sens, (recouper ou pas du tout dans ce cas, je voudrais le timespan résultant à 0 longueur)
à la fin, j'ai besoin les dates du calendrier de début/fin de la période de temps d'intersection résultant (pas seulement les tiques/heures/jours, etc.)
est-il une façon élégante faire cela dans C# 3.0?
MISE À JOUR
i pris le code StriplingWarriors et créé une méthode sur elle ..
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;
}
Avez-vous besoin de connaître la date de début/fin de la gamme, ou simplement sa longueur? –