首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DateTime to the day of the day C#

DateTime to the day of the day C#
EN

Stack Overflow用户
提问于 2022-11-21 19:58:06
回答 2查看 68关注 0票数 -1

我收到的日期是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);

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-21 20:05:07

这消除了所有的疑问归结为一个单一的滴答。在下面的代码中,假设dateAndTime可以包含一个非零时间组件。

代码语言:javascript
复制
dateAndTime.Date.AddDays(1).AddTicks(-1);

point/date

  • moves

  • 确保我们只使用一个没有时间组件作为引用的日期--只需一个滴答就可以将我们带到下一个日期-- midnight

  • subtracts上的下一个日期,将我们带着一个全分辨率的时间组件带回到我们的参考日期(如果您愿意,只需知道它的分辨率较低,就可以处理毫秒)。

虽然这是可行的,但通常最好是考虑一种完全不依赖时间组件的替代设计(例如,使用第二天午夜的给定日期作为给定引用日期的虚拟结束日期)。

票数 3
EN

Stack Overflow用户

发布于 2022-11-21 20:14:14

如果您只想打印范围,则操作格式是基于意见的。但是,如果你想检查一天之内或没有时间,请按(注>=<)的方式做。

代码语言:javascript
复制
 if (timeOfQuestion >= day.Date && timeOfQuestion < day.Date.AddDays(1)) {
   ...
 } 

使用像endOfDays = time.AddDays(1).AddMilliseconds(-1)这样的结构是危险的:请注意,day.Date.AddMilliseconds(999.5) -- double值--应该在一天之内。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74524271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档