日のチャンクサイズによって日付範囲を一連の日付範囲に分割する方法を探しています。これを使用して、日付範囲が大きすぎるとサービスに障害が発生するサービスへの呼び出しをバッファリングすることを計画しています。
これは私がこれまでに思いついたものです。動作しているようですが、正常に終了するかどうかはわかりません。これはおそらく以前に数回行われたことのようですが、私はそれを見つけることができません。
public IEnumerable<Tuple<DateTime, DateTime>> SplitDateRange(DateTime start, DateTime end, int dayChunkSize)
{
var newStart = start;
var newEnd = start.AddDays(dayChunkSize);
while (true)
{
yield return new Tuple<DateTime, DateTime>(newStart, newEnd);
if (newEnd == end)
yield break;
newStart = newStart.AddDays(dayChunkSize);
newEnd = (newEnd.AddDays(dayChunkSize) > end ? end : newEnd.AddDays(dayChunkSize));
}
}
改善の提案を探しています、または「おい、これにはこの既存の関数を使用してください!」