c# - 比较日期时间的最可靠方法?

标签 c# datetime reliability date-comparison

我主要在工作场所使用 Delphi,在一些涉及比较日期时间的彻底单元测试中,我发现在比较计算日期等时使用 equals 运算符进行直接比较不够可靠。我开始使用的规则CompareDateTimeSameDateTime它们是 Delphi 中用于日期比较的内置函数。

在 C# 中,出于习惯,我使用标准运算符 =<> 来比较日期/时间。 。我们有类似的功能,如 DateTime.CompareDateTime.Equals对于日期时间比较,因此就准确性和可靠性而言,我真的应该使用内置函数吗?

他们会给我比使用运算符更准确的比较吗?

最佳答案

鉴于您的日期/时间是计算出来的,您最好计算时间之间的差异,这会给您 TimeSpan .

TimeSpan travelTime = arrival - departure;

然后您可以检查这是否小于您允许的容差。

if (Math.Abs(travelTime.TotalMilliseconds) < tolerance)
{
    // times are equal.
}

这与您需要对浮点值采取的方法类似,但与此无关,因为在这种情况下,不准确源于您的数据而不是其在内存中的表示方式。

关于c# - 比较日期时间的最可靠方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4767656/

相关文章:

python - pandas - 如何过滤 "most frequent"日期时间对象

java - JVM控制台应用程序中如何处理^C?

c - libmcrypt 不可靠吗?

c# - System.Runtime.Caching.MemoryCache 在被逐出时会处理 IDisposable 项目吗?

c# - 在 WPF 中设置鼠标位置

c# - IList<T> 似乎不包含方法 "Remove"

c# - C# 中的 var - 为什么它不能用作成员变量?

mysql - 从日期时间字段中选择年份和月份并插入日期字段

python - 如何显示给定时区的时钟变化所经过的实际时间

wcf - WCF 中的传输可靠性和消息可靠性之间有什么实际区别?