检查给定日期时间是否为整点的最有效方法是什么
本文关键字:有效 是什么 方法 日期 时间 是否 检查 | 更新日期: 2023-09-27 18:31:01
我有System.DateTime对象,我需要确认它是在整点。
那么,检查这一点的最有效方法是什么?
我想到的当前解决方案涉及转换对象 ToString() 并获取分钟/秒部分以查看它们是否等于零。如果有更简单的方法可以做到这一点,我将不胜感激!
DateTime
具有分钟和秒属性,您可以直接检查,无需转换。如果这与你相关,你可以在几毫秒内做同样的事情。
你可以以最高的精度走这条路。
if(date.Ticks % TimeSpan.TicksPerHour == 0)
我个人的解决方案是创建一个新的DateTime
,该是整点,并将其与我想检查的进行比较,如下所示:
public bool IsOnHour(DateTime dateTime)
{
var onHour = dateTime.Date + TimeSpan.FromHours(dateTime.Hour);
return onHour == dateTime;
}
然后我不需要检查Minutes
、Seconds
、Milliseconds
等。
尝试关注 .
var dt = new DateTime();
if (dt.Minute == 0 && dt.Second == 0 && dt.Millisecond == 0)
这是一种编程方式:
DateTime min = new DateTime(value.Year, value.Month, value.Day, value.Hour, 0, 0);
DateTime max = min.AddMinutes(1);
if (min <= value && value < max)
这会有意降低精度,使 12:59:00.000 与 12:59:27.198 相同。
你可以使用这个: if(DateTime.Now.Minute == 0 && DateTime.Now.Second == 0 && DateTime.Now.Millisecond == 0)
编辑:评论