1. ホーム
  2. .net

[解決済み] 日付のMath.MinとMath.Maxの等価性?

2022-03-22 13:35:02

質問

2つの日付の間の最小値(または最大値)を取得する最も迅速で簡単な方法は何ですか?日付のMath.Min(& Math.Max)と同等のものがあるのでしょうか?

というようなことをしたいのですが。

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

明らかに日付なので、上記のMath.Minはうまくいきません。

どのように解決するのですか?

DateTime 値のオーバーロードはありませんが、長い値を取得することができます。 Ticks という値が含まれていて、それらを比較し、その結果から新しいDateTime値を作成します。

new DateTime(Math.Min(Date1.Ticks, Date2.Ticks))

(ただし、DateTime構造体にも Kind プロパティがありますが、これは新しい値では保持されません。これは通常問題にはなりません。異なる種類の DateTime 値を比較する場合、比較はいずれにせよ意味を持ちません)。