Разделить диапазон дат на фрагменты диапазона дат
Я ищу способ разбиения диапазона дат на серию диапазонов дат по размеру фрагмента дней. Я планирую использовать это для буферизации вызовов службы, которая, если диапазон дат слишком велик, отказывает службе.
Это то, что я придумал до сих пор. Кажется, что это работает, но я не уверен, что он выйдет правильно. Это похоже на то, что, возможно, было сделано несколько раз раньше, но я могуя не могу это найти.
public IEnumerable SplitDateRange(DateTime start, DateTime end, int dayChunkSize)
{
var newStart = start;
var newEnd = start.AddDays(dayChunkSize);
while (true)
{
yield return new Tuple(newStart, newEnd);
if (newEnd == end)
yield break;
newStart = newStart.AddDays(dayChunkSize);
newEnd = (newEnd.AddDays(dayChunkSize) > end ? end : newEnd.AddDays(dayChunkSize));
}
}
ищу предложения по улучшению илиЧувак, используй эту функцию для этого! "