2つのパラメーターを受け取る関数がありDateTime
、これらの日付に個別のオフセットを追加する必要があります。日付に日を追加DateTime
する関数があり、が。より小さいか大きい場合は例外をスローすることを知っています。AddDays
DateTime
MinValue
MaxValue
ここで、次の日数をaに加算/減算すると、オーバーフローDateTime
/アンダーフローが発生する可能性があるかどうかを安全に確認したいと思います。
safeStartDate = (startDate == DateTime.MinValue || startDate == DateTime.MaxValue) ? startDate : startDate.AddDays(startDateOffset);
safeEndDate = (endDate == DateTime.MaxValue || endDate == DateTime.MinValue) ? endDate : endDate.AddDays(enDateOffset);
これを行うことで、1レベルの例外を無料にしますが、日付は可能でDateTime.Max - 1
あり、オフセットを追加しようとすると例外がスローされます。例外を防ぐために、実際の計算を行わずに最終値がオーバー/アンダーフローするかどうかのより良い方法を探しています。