这个问题回答如何检查一个DateTime
是第二天了一个又一个的问题。但是,如果今晚的午夜过去了,也会触发它,我希望这个特殊情况可以算作同一天。测试一个时间是第二天,这还不包括午夜
我想出了:
if(secondDate.Date > firstDate.Date && secondDate != secondDate.Date){...}
此检查第二日有时间组分,它是一个轻微的快捷方式,检查午夜,但感觉略微笨重。有更整洁/更直观的方法吗?
这个问题回答如何检查一个DateTime
是第二天了一个又一个的问题。但是,如果今晚的午夜过去了,也会触发它,我希望这个特殊情况可以算作同一天。测试一个时间是第二天,这还不包括午夜
我想出了:
if(secondDate.Date > firstDate.Date && secondDate != secondDate.Date){...}
此检查第二日有时间组分,它是一个轻微的快捷方式,检查午夜,但感觉略微笨重。有更整洁/更直观的方法吗?
这应该工作:
if(secondDate.Date == firstDate.Date.AddDays(1) && secondDate.TimeOfDay != TimeSpan.Zero)
如果你想提高你的代码,认为这是张贴到http://codereview.stackexchange.com
行,所以相同的基本原则检查日期和时间组件分开,只是你解决我的“第二天” VS“以后的日子”的错误,你的第二个检查稍微明显它在做什么 –
呀。我不认为有可能在一种情况下检查它。 “以后的日子”,而不是午夜可能是用'secondDate> firstDate.Date.AddDays(1)'但对于“第二天”我想不出一个简单的解决方案。 – Shadowed
@ Mr.Boy把这个代码放到扩展方法'IsNextDayAfter(这个日期secondDate,日期firstDate)'和使用它像'如果(secondDate.IsNextDayAfter(firstDate))' –
更大的是firstDate和有时间组件,不仅仅是“第二天”。 –
这似乎对任何secondDate即返回true – Evk