Разделить диапазон дат на фрагменты диапазона дат

Я ищу способ разбиения диапазона дат на серию диапазонов дат по размеру фрагмента дней. Я планирую использовать это для буферизации вызовов службы, которая, если диапазон дат слишком велик, отказывает службе.

Это то, что я придумал до сих пор. Кажется, что это работает, но я не уверен, что он выйдет правильно. Это похоже на то, что, возможно, было сделано несколько раз раньше, но я могуя не могу это найти.

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));
    }
}

ищу предложения по улучшению илиЧувак, используй эту функцию для этого! "

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

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