检查字符串中的值是否更接近系统时间

时间:2014-01-28 09:19:20

标签: c# file time

我需要检查字符串i中的值是否来自文件,是否更接近系统时间。我不想检查它是否等于。在系统时间范围内,该值应为+5或-5分钟。

e.g. If value from file is : 060700, and system time is 060500 OR 060900 
     I want to return a true

我可以将文件时解析为:

DateTime filTime = DateTime.ParseExact(time, "HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture);

然后获取当前系统时间:

DateTime curTime = DateTime.Now;

但是现在应该如何检查+5或-5分钟范围。请指教。

4 个答案:

答案 0 :(得分:5)

TimeSpan diff = curTime - fileTime;
bool inRange = diff.Duration().TotalMinutes <= 5;

TimeSpan.Duration返回绝对时间跨度。

答案 1 :(得分:1)

你可以用

建立2个变量
DateTime dtPlus5 = curTime.AddMinutes(5);
DateTime dtMinus5 = curTime.AddMinutes(-5);

然后根据curTime检查它们

if (filTime >= dtMinus5 && filTime <= dtPlus5) 
{
   // Bingo!!!
}

未经测试但应该正常工作

答案 2 :(得分:0)

您可以使用减法方法http://msdn.microsoft.com/en-us/library/8ysw4sby(v=vs.110).aspx

类似的东西:

double minuteDiff = Math.Abs(t1.Subtract(t2).TotalMinutes);

答案 3 :(得分:0)

您应该从文件中获取日期,而不仅仅是时间,然后使用以下内容获取秒数的差异。

var differenceInSeconds = (dateTime1 - dateTime2).TotalSeconds;