Digamos que tengo 2 rangos de fechas.intersección Timespan en C#
Esos rangos de fechas podrían representarse como intervalos de tiempo.
quiero encontrar un rango de fechas, que se encuentre dentro de los dos intervalos de tiempo.
Range 1: 2/1/2011 - 8/1/2011 (timespan of 6 months)
Range 2: 5/2/2011 - 5/28/2011 (timespan of 26 days)
por lo que en este caso, la intersección sería 5/2/2011-5/28/2011, pero los rangos podrían moverse en cualquier dirección, (o no se cortan en todo caso en el que me gustaría el lapso de tiempo resultante sea longitud 0)
al final, necesito las fechas del calendario de inicio/final del período de tiempo intersección resultante (no sólo las garrapatas/horas/días, etc)
¿hay una manera elegante hacer esto en C# 3.0?
ACTUALIZACIÓN
i tomó StriplingWarriors código y creó un método fuera de él ..
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;
}
¿Necesita saber la fecha de inicio/finalización del rango, o simplemente su longitud? –