gpt4 book ai didi

c# - 比较日期时间得到不同的结果

转载 作者:行者123 更新时间:2023-11-30 22:19:16 26 4
gpt4 key购买 nike

我需要比较两个日期,包括秒数。我在网上搜索了两种方法。一种是导入 Microsoft.VisualBasic dll。当它运行相同的数据时,结果是不一样的。我认为 C# 应该在不导入 VisualBasic 的情况下做同样的事情。有人可以为我指明在 C# 中使用它的方法吗?

提前致谢。

有一个使用 Microsoft.VisualBasic

 if (Math.Abs(DateAndTime.DateDiff(DateInterval.Second, 
Conversions.ToDate(colFilesFound[RuntimeHelpers.GetObjectValue(rw["file_path"])]),
Conversions.ToDate(rw["last_modified_timestamp"]),
FirstDayOfWeek.Sunday, FirstWeekOfYear.Jan1)) == 0L)
{
unchangedFileNum++;
Console.WriteLine("unchange");
}
else
{
modifiedFileNum++;
Console.WriteLine("change");
}

还有一种不使用Visual.dll的方法:

DateTime fileLastModifiedDate = Conversions.ToDate(colFilesFound[rw["file_path"]]);
DateTime dataLastModifiedDate = Conversions.ToDate(rw["last_modified_timestamp"]);
if (Math.Abs((fileLastModifiedDate - dataLastModifiedDate).TotalSeconds) == 0L)
{
Console.WriteLine("File Date: " + colFilesFound[rw["file_path"]] +
" <> Database Date: " + Conversions.ToString(rw["last_modified_timestamp"]));
unchangedFileNum++;
Console.WriteLine("unchange");
}
else
{
modifiedFileNum++;
Console.WriteLine("change");
}

最佳答案

在 .NET 中比较日期时间的正确方法是使用 == 运算符或调用 DateTime.Compare()方法:

    DateTime fileLastModifiedDate = ...;
DateTime dataLastModifiedDate = ...;

if (fileLastModifiedDate == dataLastModifiedDate)
{
...
}

您需要考虑精度。有时,您没有足够的精度来考虑毫秒。在这种情况下,您需要在不考虑毫秒的情况下比较日期:

public static bool IsSameDateWithoutMilliseconds(DateTime d1, DateTime d2)
{
return d1.Subtract(d2).TotalSeconds == 0;
}

关于c# - 比较日期时间得到不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15665454/

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