Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较日期时间_C#_.net_Date_Datetime - Fatal编程技术网

C# 比较日期时间

C# 比较日期时间,c#,.net,date,datetime,C#,.net,Date,Datetime,我有一些例外文件,我想在14天后删除。但是我如何比较日期和时间呢 它实际上看起来像这样,但它不起作用 DateTime date = DateTime.Now; DateTime newDate = date.Subtract(TimeSpan.FromDays(date.Day + 14)); DirectoryInfo exceptionsDirectory = new DirectoryInfo(pathToSave); foreach (FileInfo actualFile in e

我有一些例外文件,我想在14天后删除。但是我如何比较日期和时间呢

它实际上看起来像这样,但它不起作用

DateTime date = DateTime.Now;
DateTime newDate = date.Subtract(TimeSpan.FromDays(date.Day + 14));
DirectoryInfo exceptionsDirectory = new DirectoryInfo(pathToSave);

foreach (FileInfo actualFile in exceptionsDirectory.GetFiles())
{
    if (actualFile.LastWriteTime.Subtract(TimeSpan.FromDays(date.Day + 14)) == newDay)
    {
        try
        {
            File.Delete(actualFile.FullName);
        }
        catch (Exception ex)
        {
            // do ..
        }
    }
}

使用类似以下内容:

DateTime expirydate = DateTime.Now.Subtract(TimeSpan.FromDays(14));

DirectoryInfo exceptionsDirectory = new DirectoryInfo(pathToSave);

foreach (FileInfo actualFile in exceptionsDirectory.GetFiles())
{
    if (actualFile.LastWriteTime < expirydate)
    {
        try
        {
            File.Delete(actualFile.FullName);
        }
        catch (Exception ex)
        {
            // do ..
        }
    }
}  
DateTime expirydate=DateTime.Now.Subtract(TimeSpan.FromDays(14));
DirectoryInfo例外目录=新目录信息(路径保存);
foreach(exceptionsDirectory.GetFiles()中的FileInfo实际文件)
{
if(实际文件.LastWriteTime
与大多数
DateTime
相关答案一样,如果使用
DateTime.UtcNow
actualFile.LastWriteTimeUtc
,效果会更好。在这种情况下,这并不重要,因为问题是“14天左右”,但如果有人接受此代码并试图将其应用于(比如)一小时前的文件,他们应该使用Utc。@IanMercer,这并不总是一个好主意。在许多情况下,您必须依赖本地时间,而不是UTC时间。我没有说“总是”,而是说“大多数”。例如:几乎每个在服务器上运行的多用户应用程序(WWW、WCF、WebApi等等)都不使用
DateTime。每当需要计算两次之间的差值时,都需要使用Utc。等等。甚至当您确实需要使用本地时间时,最好使用
DateTimeOffset
而不是
DateTime
,因为它同时捕获Utc和当前偏移量。