相关疑难解决方法(0)

比较两个日期时间时忽略毫秒

这可能是一个愚蠢的问题,但我似乎无法弄明白.我正在比较两个文件的LastWriteTime,但是它总是失败,因为我从网上下载的文件总是将毫秒设置为0,而我的原始文件有一个实际值.在比较时是否有一种忽略毫秒的简单方法?

这是我的功能:

//compare file's dates
public bool CompareByModifiedDate(string strOrigFile, string strDownloadedFile)
{
     DateTime dtOrig = File.GetLastWriteTime(strOrigFile);
     DateTime dtNew = File.GetLastWriteTime(strDownloadedFile);

     if (dtOrig == dtNew)
        return true;
     else
        return false;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

c# datetime c#-4.0

69
推荐指数
7
解决办法
4万
查看次数

如何在C#中使用指定的容差比较DateTime对象?

默认情况下,C#将DateTime对象与100ns刻度进行比较.但是,我的数据库将DateTime值返回到最接近的毫秒.使用指定的容差比较C#中两个DateTime对象的最佳方法是什么?

编辑:我正在处理截断问题,而不是舍入问题.正如Joe在下面指出的那样,舍入问题将引入新的问题.

适合我的解决方案是以下组合.

(dateTime1 - dateTime2).Duration() < TimeSpan.FromMilliseconds(1)
Run Code Online (Sandbox Code Playgroud)

如果差异小于1毫秒,则返回true.对Duration()的调用很重要,以获得两个日期之间差异的绝对值.

c# comparison datetime resolution

29
推荐指数
3
解决办法
2万
查看次数

DateTime比较精度

我正在进行DateTime比较,但我不想在秒,毫秒和刻度级别进行比较.什么是最优雅的方式?

如果我只是比较DateTime,那么由于滴答差异,它们很少相等.

c# comparison datetime

27
推荐指数
4
解决办法
2万
查看次数

比较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"功能?我知道我将dateTime转换为字符串然后比较它但我想知道一个对象a.dateModified是否比对象b.dateModified更新的可能性

c# datetime

17
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×4

datetime ×4

comparison ×2

c#-4.0 ×1

resolution ×1