2013-10-31 24 views
0

我创建了一个控制台应用程序,用于检查SQL备份文件的日期。其中一个文件夹似乎已将备份复制到其中,因此修改日期早于创建日期,因此我正按创建日期(file.CreationTime > DateTime.Now.AddHours(-24)进行检查。但是,当我尝试创建一个变量来检查DateTime.Now.AddHours(-24)变量没有被设置。另外,对于创建日期为10/31/2013 11:30 AM的文件而言,上述检查失败,这对我没有任何意义。C#.CreationTime/.AddHours问题

有没有我做错了这段代码?我发誓,之前我必须为它写下类似的情况,并且工作。

//Is it more than 24 hours old? If dt.DayofWeek.ToString() = "Monday", check for 72 hours. 
     if (dt == DayOfWeek.Monday) 
     { 
      checkHours = fiFo.CreationTime> DateTime.Now.AddHours(-72); 
     } 
     else 
     { 
      checkHours = fiFo.CreationTime> DateTime.Now.AddHours(-24); 
     } 

以上是在大多数网站上工作的内容。但是,如果将复制的日期时间作为准确的日期时间,即使我知道日期是正确的并且应该返回true,它也将是错误的。

+4

你将不得不展示一些代码,希望有人能够回答你的问题。 –

+0

谢谢,编辑了最初的帖子。如果checkHours为false,我们会发送一封电子邮件通知我们备份是旧的。出于某种原因,当我使用fiFo.CreationTime时,它似乎认为它每次都比较老,即使使用上面提到的CreationTime也是如此。 – Justin

+0

只是为了确定;你是否跨越了代码并查看了'fiFo.LastWriteTime'中的实际日期? – Stormenet

回答

0

您必须使用< =(确定X小时以上),因为>表示'最后写入时间小于24小时',但< ='最后写入时间大于或等于到24小时。“

时间很有趣。

+0

'checkHours = fiFo.CreationTime> DateTime.Now.AddHours(-24)'表示文件是在24小时前创建的。 OP说'10/31/2013 11:30 AM'应该通过支票。您的解决方案使其失败。 – Harrison

+0

@哈里森 - 没有。超过24小时之后,您需要在该声明中使用<=。你使用>表示它不到24小时。想想看,大于(现在 - 24小时)与小于或等于(现在 - 24小时)。 – user2942249

+0

对。 '你用的>表示它不到24小时''确切地说... OP说''10/31/2013 11:30 AM'应该通过...又名不到24小时 – Harrison