public static IEnumerable<DateTime> EnumerateTo(this DateTime start, DateTime end)
{
var inverse = end < start;
var interval = end.Subtract(start);
if (inverse) interval = start.Subtract(end);
var days = (int) Math.Ceiling(interval.TotalDays);
for (var i = 0; i <= days; i++)
{
yield return start.AddDays(inverse?-i:i);
}
}