我有System.DateTime对象,我需要确认它是在一小时。
那么检查这个最有效的方法是什么?
我想到的当前解决方案涉及转换对象ToString()并获取分钟/秒部分以查看它们是否等于零。如果有更简单的方法,我会很感激建议!
答案 0 :(得分:4)
答案 1 :(得分:2)
你可以以最高的准确度走这条路。
if(date.Ticks % TimeSpan.TicksPerHour == 0)
答案 2 :(得分:1)
我个人的解决方案是创建一个新的DateTime
,这是一小时的,并将其与我想检查的那个进行比较,如:
public bool IsOnHour(DateTime dateTime)
{
var onHour = dateTime.Date + TimeSpan.FromHours(dateTime.Hour);
return onHour == dateTime;
}
然后我不需要查看Minutes
,Seconds
,Milliseconds
等。
答案 3 :(得分:0)
您可以使用:if(DateTime.Now.Minute == 0 && DateTime.Now.Second == 0 && DateTime.Now.Millisecond == 0)
编辑:评论
答案 4 :(得分: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相同。
答案 5 :(得分:0)
尝试以下操作。
var dt = new DateTime();
if (dt.Minute == 0 && dt.Second == 0 && dt.Millisecond == 0)