Datetime.Nowを利用して日付判定をしたのだけど、うまく判定できない

c#で日付比較をする際の注意です。
私は、おバカさんなのでハマってしまいました。

DateTime.Now
2018/05/06 7:20:54

DateTime.Now.Date
2018/05/06 0:00:00

DateTime.NowとDateTime.Now.Dateとは取得できる値が違う(当たり前か)

ここで日付の比較をしたい時、2018/5/6以前という判定をしたとして

DateTime.Now <= new DateTime(2018,5,6)

は、2018/5/6は含まれないことになる。なぜなら

new DateTime(2018,5,6) の結果は 2018/5/6 0:00:00 であって、DateTime.Nowは時間が進んでしまっているから。5/6を含めたければ

DateTime.Now.Date <= new DateTime(2018,5,6)

とするか、

DateTime.Now < new DateTime(2018,5,7)

とするべき。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です