2017-03-07 50 views
2

这个问题回答如何检查一个DateTime是第二天了一个又一个的问题。但是,如果今晚的午夜过去了,也会触发它,我希望这个特殊情况可以算作同一天。测试一个时间是第二天,这还不包括午夜

我想出了:

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

此检查第二日时间组分,它是一个轻微的快捷方式,检查午夜,但感觉略微笨重。有更整洁/更直观的方法吗?

+4

更大的是firstDate和有时间组件,不仅仅是“第二天”。 –

+0

这似乎对任何secondDate即返回true – Evk

回答

4

这应该工作:

if(secondDate.Date == firstDate.Date.AddDays(1) && secondDate.TimeOfDay != TimeSpan.Zero) 
如果你想提高你的代码,认为这是张贴到http://codereview.stackexchange.com
+0

行,所以相同的基本原则检查日期和时间组件分开,只是你解决我的“第二天” VS“以后的日子”的错误,你的第二个检查稍微明显它在做什么 –

+0

呀。我不认为有可能在一种情况下检查它。 “以后的日子”,而不是午夜可能是用'secondDate> firstDate.Date.AddDays(1)'但对于“第二天”我想不出一个简单的解决方案。 – Shadowed

+0

@ Mr.Boy把这个代码放到扩展方法'IsNextDayAfter(这个日期secondDate,日期firstDate)'和使用它像'如果(secondDate.IsNextDayAfter(firstDate))' –