比较datetime而不是毫秒

我需要在两个单独的列表中比较日期。 每个列表都由MyFile对象构成。 这是我创建的一个类,用于获取有关文件的特定信息,例如name,dateModified,extension等。唯一的问题是我的第二个列表中的很多MyFiles对象(从外部硬盘驱动器获取)没有使用dateTime标记(LastWriteTime)直到毫秒。 我相信这就是为什么我的比较不起作用的原因。 例如,这里是我的比较失败的一个例子:“为什么c#认为日期不相等?” 调试

a和b是MyFile对象,MyFile类包含一个属性ticks,它等于file.LastWriteTime.Ticks它们没有在我刚刚包含它们的程序中用于调试目的。 因此,经过多次调试后,我意识到最后7位代表文件的毫秒数。 因此,我在MyFile中的ticks属性现在包含11个有效数字而不是18个(注意18-11 = 7)。 这个问题是,当我比较滴答时,当我尝试通过除以10000000然后多次乘以10000000来更新ticks属性时,我得到奇怪的结果。由于我的ticks propery是一个long int,它将丢失最后7位数当我划分。 我得到的’错误’更少。 但是还有一些时候我会得到这样的东西: 在此处输入图像描述

在这里我们可以看到日期至少相同,直到第二个。 为什么c#认为它不是同一个日期? 我是否必须创建自己的“Ticks”function? 我知道我将dateTime转换为字符串然后比较它但我希望知道对象a.dateModified是否比对象b.dateModified更新的可能性

尝试比较具体的精度:

 DateTime a, b; // fill a and b with the values you need if (Math.Abs((ab).TotalSeconds) < 1) Console.WriteLine("File doesn't need to be copied"); else Console.WriteLine("File needs to be copied");