dbp*_*man 4 c# comparison datetime
我试图理解为什么以下功能不起作用.
public IEnumerable<LogFile> GetLogs(string directory, DateTime start, DateTime end)
{
DirectoryInfo di = new DirectoryInfo(directory);
return di.GetFiles("*debug.log").Where(f => f.LastWriteTime > start && f.LastWriteTime <= end).Select(f => new LogFile(f.FullName));
}
Run Code Online (Sandbox Code Playgroud)
为什么第二次比较(f.LastWriteTime <= end)省略了指定的结束日期?
第一次比较(f.LastWriteTime > start)确实包括指定的开始日期.
例如,如果我将开始日期设置为2013年1月4日,结束日期设置为2013年1月1日,则函数将返回具有以下日期的文件:
2013年1月4日,1/5/2013,1/6/2013,1/7/2013
尽管在代码中使用了<=,但它不包括1/8/2013.
您正在处理日期和时间值,而不仅仅是日期值.
1/6/2013 4:301/6/2013 12:00尽管日期是相同的,但并不等于.
您可以Date在每个DateTime对象上使用该属性来获取DateTime时间始终为午夜的新对象.
| 归档时间: |
|
| 查看次数: |
210 次 |
| 最近记录: |