我需要比较两个日期时间值来确定的平等(完全一样),用分钟precision.Would这是做到这一点的最好方法是什么? 我的日期可能有秒和毫秒,但我想只有下来,直到分钟考虑。
where (Math.Abs(datetime1.Subtract(datetime2).TotalMinutes) == 0)
我需要比较两个日期时间值来确定的平等(完全一样),用分钟precision.Would这是做到这一点的最好方法是什么? 我的日期可能有秒和毫秒,但我想只有下来,直到分钟考虑。
where (Math.Abs(datetime1.Subtract(datetime2).TotalMinutes) == 0)
检查是否Math.Abs(diff.TotalMinutes) == 0
不会做它,没有-这是检查它们是否是完全一样的。
你们是不是要检查它们是否具有相同分钟,或者他们是否是小于每隔一分钟? 对于一,用途:
where RoundToMinute(dateTime1) == RoundToMinute(dateTime2)
已宣布:
public static DateTime RoundToMinute(DateTime time)
{
return new DateTime(time.Year, time.Month, time.Day,
time.Hour, time.Minute, 0, time.Kind);
}
对于第二个,使用:
where Math.Abs((dateTime1 - dateTime2).TotalMinutes) < 1
你应该考虑你想要的结果是,一个是本地,一个是UTC,顺便的情况下什么...
请注意,有没有什么具体的LINQ,在这里 - 假设你使用LINQ到对象。 如果你正在使用LINQ to SQL,那么显然你不能使用本地方法,我们将不得不重新寻找......
编辑:我仍然在你的问题非常不清楚。 如果你需要他们一模一样的日期/时间,很容易(撇开可能局部VS UTC的问题):
where dateTime1 == dateTime2
然而,提出为什么你在问题中提到的标题“分钟精密”或疑问体“用一分钟的时间精确度”的问题。
怎么样
where (Math.Floor(datetime1.Ticks / 600000000) == Math.Floor(datetime2.Ticks / 600000000))
?
感谢阿伦,将做到这一点(!还是搞清楚的过程中是如何工作的)这是指示答复我已经想出了最初的代码片段:
(Math.Abs(datetime1.Subtract(DATETIME2).TotalMinutes)== 0)
背景:在我的LINQ查询的WHERE子句(因此一个班轮),我需要检查,如果datetime1和DATETIME2是完全一样的。 正在审议的日期时间值是在查询中使用其他值邮票日期。