gpt4 book ai didi

c# - DateTime.Compare 没有按预期工作

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:49 25 4
gpt4 key购买 nike

我试图用下面的函数比较忽略秒数的两个 DateTime 对象,但即使两个 DateTime 对象具有相同的值,它也会给出错误的结果。无法弄清楚如何让它正常工作,我们将不胜感激任何帮助。

public static int CompareDateTime(DateTime d1, DateTime d2)
{
d1 = d1.AddSeconds(-1 * d1.Second);
d2 = d2.AddSeconds(-1 * d2.Second);

int result = DateTime.Compare(d1, d2);
string relationship;

if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";

Console.WriteLine("{0} {1} {2}", d1, relationship, d2);

return result;

}

结果:

3/7/2017 2:54:00 PM is later than 3/7/2017 2:54:00 PM

最佳答案

这里的问题是您没有按照预期进行截断。截断的最佳方法是通过执行以下操作从构造函数创建一个全新的 DateTime 对象:

d1 = new DateTime(d1.Year, d1.Month, d1.Day, d1.Hour, d1.Minute, 0);
d2 = new DateTime(d2.Year, d2.Month, d2.Day, d2.Hour, d2.Minute, 0);

这将确保您只比较所需的数据。

在这种特定情况下,您尝试截断所留下的可能是日期时间的一部分的毫秒数。

关于c# - DateTime.Compare 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42650184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com