我想比较两年的时差。
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);
我做得对吗?
答案 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);
}
编辑:从以下评论中可以看出,最好添加年份并比较日期时间。