从日期时间减去时间

时间:2016-02-29 09:14:11

标签: c# linq

我正在努力解决一个问题。我有一些我想用名字打开的文件 -

  

XX-20160229-0920

(每个文件都有不同的时间)。我需要打开只与当前时间相匹配的文件减去几个小时。我减去的小时数每次都不同。我已尝试使用currentTime.AddHours(time),但如果减去的小时数大于当前时间,则日期不会相应更改,这是我需要使用文件名解析的内容。

2 个答案:

答案 0 :(得分:0)

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

这将以您要求的格式提供日期/时间,但显然每分钟都会更改。

答案 1 :(得分:0)

首先定义从文件名到实际日期时间值的转换,可以解决问题。总的来说,以下函数可以根据某些比较值接受或拒绝日期。

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