我主要在工作场所使用 Delphi,在一些涉及比较日期时间的彻底单元测试中,我发现在比较计算日期等时使用 equals 运算符进行直接比较不够可靠。我开始使用的规则CompareDateTime和 SameDateTime它们是 Delphi 中用于日期比较的内置函数。
在 C# 中,出于习惯,我使用标准运算符 =<>
来比较日期/时间。 。我们有类似的功能,如 DateTime.Compare和 DateTime.Equals对于日期时间比较,因此就准确性和可靠性而言,我真的应该使用内置函数吗?
他们会给我比使用运算符更准确的比较吗?
最佳答案
鉴于您的日期/时间是计算出来的,您最好计算时间之间的差异,这会给您 TimeSpan
.
TimeSpan travelTime = arrival - departure;
然后您可以检查这是否小于您允许的容差。
if (Math.Abs(travelTime.TotalMilliseconds) < tolerance)
{
// times are equal.
}
这与您需要对浮点值采取的方法类似,但与此无关,因为在这种情况下,不准确源于您的数据而不是其在内存中的表示方式。
关于c# - 比较日期时间的最可靠方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4767656/