Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9749

【C#】Null許容のDatetimeを比較してBooleanを返すメソッド【Nullable.Compare】

$
0
0

Nullを許容したDateTime型変数を検索条件として、Linqの.Where内で使いたかったためメソッド作りました。

公式でNullable.Compareというメソッドがあるのですが、返却値がInt型で使いづらかったのでBoolean型にしておきました。

メソッド

usingSystem;//date1がdate2より遅い日付の場合TruepublicboolCompareNullableDatetime(DateTime?date1,DateTime?date2){intresult=Nullable.Compare(date1,date2);returnresult>0;}

仕様

DateTimeが非Nullの場合
返却値引数1引数2補足
TRUE2021/02/27 00:00:002021/01/27 00:00:00引数1が引数2より遅い時刻 
FALSE2021/01/27 00:00:002021/02/27 00:00:00引数1が引数2より早い時刻 
FALSE2021/02/27 00:00:002021/02/27 00:00:00引数1と引数2が同じ時刻
DateTimeがNullを含む場合
返却値引数1引数2
TRUE2021/02/27 00:00:00Null
FALSENull2021/02/27 00:00:00
FALSENullNull

Nullable.Compareに関して補足

公式ドキュメント

Nullable.Compareの仕様

覚え方的には、Nullを「0」だと思って「引数1-引数2」をする感覚です。

DateTimeが非Nullの場合
返却値引数1引数2補足
0より大きい値2021/02/27 00:00:002021/01/27 00:00:00引数1が引数2より遅い時刻 
0より小さい値2021/01/27 00:00:002021/02/27 00:00:00引数1が引数2より早い時刻 
02021/02/27 00:00:002021/02/27 00:00:00引数1と引数2が同じ時刻
DateTimeがNullを含む場合
返却値引数1引数2
0より大きい値2021/02/27 00:00:00Null
0より小さい値Null2021/02/27 00:00:00
0NullNull

より大きい値、より小さい値ってなんやねん


Viewing all articles
Browse latest Browse all 9749

Trending Articles