我敢肯定这很容易,但我突然遇到了心理障碍。
我正在尝试获取下一次凌晨 3 点的 DateTime 对象。例如,如果 DateTime.Now
是 16/july/2009 : 12:04pm
- 下一个凌晨 3 点将是 17/july/2009 : 03: 00
但是,如果 DateTime.Now
是 17/july/2009 : 01:00
那么下一次出现仍然是 17/july/2009 : 03 :00
(不是后一天)。
这有意义吗?
最佳答案
一个选项:
DateTime now = DateTime.Now;
DateTime today3am = now.Date.AddHours(3);
DateTime next3am = now <= today3am ? today3am : today3am.AddDays(1);
另一个:
DateTime now = DateTime.Now;
DateTime today = now.Date;
DateTime next3am = today.AddHours(3).AddDays(now.Hour >= 3 ? 1 : 0)
有很多方法可以为特定的猫剥皮 :)
当然,这都是本地时间,这意味着您无需担心时区问题。如果您想涉及时区,生活会变得更加棘手......
请注意,如果在计算时日期翻转,最好使用 DateTime.Now
一次 以避免出现问题...
关于c# - 下一个凌晨 3 点发生的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1142626/