C#学习教程:共享下一次凌晨3点的DateTime我正在尝试获取下一次凌晨3点的DateTime对象。例如,如果DateTime.Now是16/july/2009:12:04pm-下一次出现的3am16/july/2009:12:04pm是17/july/2009:03:00但如果DateTime.Now是17/july/2009:01:00那么下一次仍然是17/july/2009:03:00(不是第二天)。那有意义吗?一种选择:DateTimenow=DateTime.Now;DateTimetoday3am=now.Date.AddHours(3);DateTimenext3am=now另一个:DateTimenow=DateTime.Now;DateTimetoday=now.Date;DateTimenext3am=today.AddHours(3).AddDays(now.Hour>=3?1:0)顺便说了很多皮肤猫:)这当然是当地时间,这意味着你没有担心时区。如果你想涉及时区,生活会变得更加棘手......请注意,最好使用DateTime.Now一次以避免计算时出现日期翻转问题......DateTimenow=DateTime.Now;DateTimethreeAM=now.Date.AddHours(3);if(threeAM//justadd24-3=21hoursandgetToday(startofday)andAdd3hourDateTimenow=DateTime.Now.AddHours(21).Today.AddHours(3);备选方案(使用函数):DateTimeNextAt(TimeSpantime){DateTimenow=DateTime.Now;DateTimeresult=now.Date+time;return(nowcall:DateTimenext3am=NextAt(newTimeSpan(3,0,0));你可以不用if语句(或条件运算符)://获取当前时间DateTimenow=DateTime.Now;//获取未来凌晨3:00的时间点DateTimenext=now.Date.AddHours(24+3);//减去整个额外天数next=next.AddDays((now-next).Days);我总是解释说你应该这样做我在计算中得到了时间点(DateTime.Now)因为它是一个变化的值,所以我必须重复吗?好吧,我只是重复了。;)我觉得这一篇:以上就是C#学习教程:下个日期时间凌晨3:00分享。如果对大家有用,需要详细了解C#学习教程,希望大家关注---DateTime.Now.Date.AddHours(3).AddMinutes(0).AddSeconds(0).AddDays(1));本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
