我需要检查字符串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分钟范围。请指教。
答案 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;