日付用の Math.Min と Math.Max に相当するものはありますか? 質問する

日付用の Math.Min と Math.Max に相当するものはありますか? 質問する

2 つの日付間の最小値 (または最大値) を取得する最も速くて簡単な方法は何ですか? 日付に対して Math.Min (および Math.Max) に相当するものはありますか?

次のようなことをしたいです:

 if (Math.Min(Date1, Date2) < MINIMUM_ALLOWED_DATE) {
      //not allowed to do this
 }

明らかに、上記の Math.Min は日付なので機能しません。

ベストアンサー1

それを実行するための組み込みメソッドはありません。次の式を使用できます。

(date1 > date2 ? date1 : date2)

2 つの最大値を見つけます。

MinまたはMax任意の型を計算する汎用メソッドを記述できます(Comparer<T>.Default適切に設定されていることが条件です)。

public static T Max<T>(T first, T second) {
    if (Comparer<T>.Default.Compare(first, second) > 0)
        return first;
    return second;
}

LINQ も使用できます:

new[]{date1, date2, date3}.Max()

おすすめ記事