我收到的日期是1.01.2022小时: 00,m:00,s:00,ms: 00。
在一天结束时获得日期的最佳方法是: 01.01.2022小时:23,m:59,s:59,ms: 999?
我试过这两种方法:
var endOfDay = new TimeSpan(0, 23, 59, 59, 999);
time = time.Add(endOfDay);
和
time = time.AddDays(1).AddMilliseconds(-1);
发布于 2022-11-21 20:05:07
这消除了所有的疑问归结为一个单一的滴答。在下面的代码中,假设dateAndTime可以包含一个非零时间组件。
dateAndTime.Date.AddDays(1).AddTicks(-1);这
point/date
虽然这是可行的,但通常最好是考虑一种完全不依赖时间组件的替代设计(例如,使用第二天午夜的给定日期作为给定引用日期的虚拟结束日期)。
发布于 2022-11-21 20:14:14
如果您只想打印范围,则操作格式是基于意见的。但是,如果你想检查一天之内或没有时间,请按(注>=和<)的方式做。
if (timeOfQuestion >= day.Date && timeOfQuestion < day.Date.AddDays(1)) {
...
} 使用像endOfDays = time.AddDays(1).AddMilliseconds(-1)这样的结构是危险的:请注意,day.Date.AddMilliseconds(999.5) -- double值--应该在一天之内。
https://stackoverflow.com/questions/74524271
复制相似问题