2016-02-29 137 views
0

我正在試圖使查詢遇到困難時間。我有一些文件,我想用的名字開 -從日期時間中扣除時間

XX-20160229-0920

(每個文件都有不同的時間)。我需要打開只匹配currentTime減去幾個小時的文件。我減去的時間每次都是不同的。我試過使用currentTime.AddHours(time),但是如果我減去的小時數大於當前時間,那麼日期不會相應改變,這是我需要用文件名解析的東西。

+0

請添加一些代碼;我建議寫一個比較接受的日期,然後將其推廣到接受或拒絕某些文件名。 – Codor

+0

這不是日期時間。它可以是一個字符串。你有沒有嘗試先解析它?它是否總是'XX-yyyyMMdd-HHmm'格式? –

+0

我知道要比較什麼,我只需要一種方法來減少小時數和日期以相應更新 而且是的 - 我無法更改文件名。它將始終是相同的格式。 – Freebirdy

回答

0
var name = DateTime.Now.AddHours(-2) 
    .ToString("XX-yyyyMMdd-hhmm", CultureInfo.InvariantCulture); 

這會給你的日期/時間在你要求的格式,但顯然這將改變每一分鐘。

0

該問題可以通過首先定義從文件名到實際日期時間值的轉換來解決;總共,以下函數可以接受或拒絕日期,基於某個比較值。

bool AcceptFileName(string FileName, DateTime Now, int HoursIntoPast) 
{ 
    DateTime DateTimeFromFileName 
     = DateTime ParseExact(FileName, "XX-yyyyMMdd-hhmm", CultureInfo.InvariantCulture); 
    return Now.AddHours(-HoursIntoPast) <= Now; 
}