我正在試圖使查詢遇到困難時間。我有一些文件,我想用的名字開 -從日期時間中扣除時間
XX-20160229-0920
(每個文件都有不同的時間)。我需要打開只匹配currentTime減去幾個小時的文件。我減去的時間每次都是不同的。我試過使用currentTime.AddHours(time)
,但是如果我減去的小時數大於當前時間,那麼日期不會相應改變,這是我需要用文件名解析的東西。
我正在試圖使查詢遇到困難時間。我有一些文件,我想用的名字開 -從日期時間中扣除時間
XX-20160229-0920
(每個文件都有不同的時間)。我需要打開只匹配currentTime減去幾個小時的文件。我減去的時間每次都是不同的。我試過使用currentTime.AddHours(time)
,但是如果我減去的小時數大於當前時間,那麼日期不會相應改變,這是我需要用文件名解析的東西。
var name = DateTime.Now.AddHours(-2)
.ToString("XX-yyyyMMdd-hhmm", CultureInfo.InvariantCulture);
這會給你的日期/時間在你要求的格式,但顯然這將改變每一分鐘。
該問題可以通過首先定義從文件名到實際日期時間值的轉換來解決;總共,以下函數可以接受或拒絕日期,基於某個比較值。
bool AcceptFileName(string FileName, DateTime Now, int HoursIntoPast)
{
DateTime DateTimeFromFileName
= DateTime ParseExact(FileName, "XX-yyyyMMdd-hhmm", CultureInfo.InvariantCulture);
return Now.AddHours(-HoursIntoPast) <= Now;
}
請添加一些代碼;我建議寫一個比較接受的日期,然後將其推廣到接受或拒絕某些文件名。 – Codor
這不是日期時間。它可以是一個字符串。你有沒有嘗試先解析它?它是否總是'XX-yyyyMMdd-HHmm'格式? –
我知道要比較什麼,我只需要一種方法來減少小時數和日期以相應更新 而且是的 - 我無法更改文件名。它將始終是相同的格式。 – Freebirdy