我想将timepan diff值转换为正值
我的代码在这里:
TimeSpan lateaftertime = new TimeSpan();
lateaftertime = lateafter - Convert.ToDateTime(intime);
我想让迟到的结果总是正面的.. 请帮帮我..
答案 0 :(得分:56)
您可以使用lateaftertime.Duration()
获得非负差距。
答案 1 :(得分:4)
您可以使用Math.Abs():
lateaftertime = new TimeSpan(Math.Abs(lateaftertime.Ticks));
用户V4Vendetta在评论中做了正确的电话。使用TimeSpan.Duration属性,它始终返回绝对值。
答案 2 :(得分:2)
好的,我假设您正在使用C#,因为它看起来就是这样。
-
类上的TimeSpan
运算符已经过载,所以您需要做的就是在计算前加-
,就像在整数上执行转换一样。以下是一些可以在Console App中运行的代码:
var inTime = "19-Jan-2012 21:00";
var lateAfter = Convert.ToDateTime("19-Jan-2012 20:00");
TimeSpan lateAfterTime = lateAfter - Convert.ToDateTime(inTime);
var positiveLateAfterTime =
lateAfterTime < TimeSpan.Zero
?
-lateAfterTime
:
lateAfterTime;
Console.WriteLine(positiveLateAfterTime.ToString());