2013-10-31 26 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