我想将时间跨度差异值转换为始终为正。
我的代码在这里:
TimeSpan lateaftertime = new TimeSpan();
lateaftertime = lateafter - Convert.ToDateTime(intime);
我希望得到
lateaftertime
始终为正的结果。
您可以使用
lateaftertime.Duration()
来获得非负跨度。
你可以使用 Math.Abs():
lateaftertime = new TimeSpan(Math.Abs(lateaftertime.Ticks));
用户 V4Vendetta 在评论中做出了正确的决定。 使用 TimeSpan.Duration 属性,它始终返回绝对值。
好吧,我假设您使用的是 C#,因为它看起来就是这样。
-
类上的TimeSpan
运算符已重载,因此您需要做的就是在计算前加上-
,就像对整数执行转换一样。以下是一些可以在控制台应用程序中运行的代码:
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());