2

我想将时差与两年长进行比较。

        public const long TwoYears = 2 * 365 * 24 * 3600;
        string currTime = DateTime.Now.ToString("yyyyMMddHHmmss");
        string recordTime = fileName.Split('_','-').Last();// format is 'yyyyMMddHHmmss'
        long diff = (long.Parse(currTime)) - (long.Parse(recordTime));
        if (diff < TwoYears)
            Console.WriteLine(fileName);

我做对了吗?

4

2 回答 2

5

只需将-2年份添加到日期并与任何内容进行比较

if (dateTimeVar > DateTime.Now.AddYears(-2))
{
    // code...
}

如果您的日期来自字符串,请使用DateTime.ParseExact并指定format要转换的日期。

于 2013-01-28T15:31:47.063 回答
1

不,因为您将日期表示为有序数字。更合适的解决方案是:

String recordTime = fileName.Split('_','-').Last();// format is 'yyyyMMddHHmmss'
DateTime recordDateTime = DateTime.ParseExact( recordTime , "yyyyMMddHHmmss", CultureInfo.InvariantCulture );

if ( recordDateTime.AddYears(2) < DateTime.Now )
{
    Console.WriteLine(fileName);
}

编辑:从下面的评论中可以看出,最好添加年份并比较 DateTimes。

于 2013-01-28T15:40:49.907 回答