2017-03-07 4 views
2

この質問は、DateTimeが次の日であるかどうかを確認する方法についての質問に答えます。しかし、今夜真夜中が過ぎた場合にもトリガーされ、その特別なケースは同じ日にカウントされます。時刻が深夜を含まない翌日であるかどうかを確認する

私が思い付いた:二日は真夜中をチェックするためのわずかなショートカットですが、それは少し不格好な感じ時間成分を有している場合は、このチェック

if(secondDate.Date > firstDate.Date && secondDate != secondDate.Date){...}

。もっと洗練された方法がありますか?

+4

あなたは、あなたのコードを向上させる。これは、ある任意のsecondDateのためにtrueを返すように思わhttp://codereview.stackexchange.com –

+0

にそれを掲示考慮したい場合は、より大きなものとfirstDate 「翌日」だけでなく、時間的要素もあります。 – Evk

答えて

4

これは動作するはずです:

if(secondDate.Date == firstDate.Date.AddDays(1) && secondDate.TimeOfDay != TimeSpan.Zero) 
+0

OK同じ基本原理で日付と時刻のコンポーネントを別々にチェックするだけで、 "次の日"のV日の "翌日"のバグに対処するだけで、2回目のチェックは何をしているのかが少しはっきりしています –

+0

うん。私は1つの状態でそれをチェックすることは可能ではないと思う。真夜中ではなく「後日」は「secondDate> firstDate.Date.AddDays(1)」となる可能性がありますが、「翌日」は単純な解決策の1つではありませんでした。 – Shadowed

+0

@ Mr.Boyこのコードを拡張メソッド 'IsNextDayAfter(this DateTime secondDate、DateTime firstDate)'に入れ、 'if(secondDate.IsNextDayAfter(firstDate)) 'のように使用します。 –

関連する問題