检查给定DateTime是否在小时的最有效方法是什么?

时间:2016-01-18 15:57:14

标签: c#

我有System.DateTime对象,我需要确认它是在一小时。

那么检查这个最有效的方法是什么?

我想到的当前解决方案涉及转换对象ToString()并获取分钟/秒部分以查看它们是否等于零。如果有更简单的方法,我会很感激建议!

6 个答案:

答案 0 :(得分:4)

DateTimeminuteseconds属性,您可以直接检查,无需转换。如果这与你相关,你可以用毫秒来做同样的事情。

答案 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;
}

然后我不需要查看MinutesSecondsMilliseconds等。

答案 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)