C# 测试时间是否为第二天,不包括午夜
此问题回答了如何检查一个C# 测试时间是否为第二天,不包括午夜,c#,.net,datetime,.net-4.5,C#,.net,Datetime,.net 4.5,此问题回答了如何检查一个DateTime是否是另一个的第二天的问题。但是,如果今晚午夜过去了,它也会被触发,我希望这个特殊的情况也算作同一天 我想到了: if(secondDate.Date>firstDate.Date&&secondDate!=secondDate.Date){…} 这将检查第二个日期是否有时间组件,这是检查午夜的一个轻微快捷方式,但感觉有点笨拙。是否有一种更整洁/更直观的方法?这应该可以: if(secondDate.Date == firstDate.Date.AddDa
DateTime
是否是另一个的第二天的问题。但是,如果今晚午夜过去了,它也会被触发,我希望这个特殊的情况也算作同一天
我想到了:
if(secondDate.Date>firstDate.Date&&secondDate!=secondDate.Date){…}
这将检查第二个日期是否有时间组件,这是检查午夜的一个轻微快捷方式,但感觉有点笨拙。是否有一种更整洁/更直观的方法?这应该可以:
if(secondDate.Date == firstDate.Date.AddDays(1) && secondDate.TimeOfDay != TimeSpan.Zero)
如果你想改进你的代码,考虑把它发布到第二个日期,它比第一个日期大,并且有时间组件,不仅是“第二天”。同样,基本的原则,检查日期和时间的组成部分,只是你的地址我的“第二天”vs“后一天”。bug和你的第二次检查更明显它在做什么是的。我认为不可能在一种情况下检查它。“晚一天”而不是午夜可以是
secondDate>firstDate.Date.AddDays(1)
,但对于“第二天”,我想不出一个更简单的解决方案。@Mr.Boy将此代码放入扩展方法IsNextDayAfter(this DateTime secondDate,DateTime firstDate)
并像if(secondDate.IsNextDayAfter(firstDate))一样使用它
我对DST在这里的作用有点困惑。。。如果我们比较天数,可以吗?