从日期时间中减去时间

本文关键字:时间 日期 | 更新日期: 2023-09-27 18:36:51

我很难进行我正在尝试的查询。我有一些文件想用这个名字打开 -

XX-20160229-0920

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

从日期时间中减去时间

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;
}