比较时间差与固定时期

时间:2013-01-28 15:29:52

标签: c#

我想比较两年的时差。

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

我做得对吗?

2 个答案:

答案 0 :(得分:5)

只需将-2年添加到日期并与

进行比较
if (dateTimeVar > DateTime.Now.AddYears(-2))
{
    // code...
}

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

答案 1 :(得分: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);
}

编辑:从以下评论中可以看出,最好添加年份并比较日期时间。