时间差值始终为正

时间:2012-01-19 07:27:41

标签: c# timespan

我想将timepan diff值转换为正值

我的代码在这里:

TimeSpan lateaftertime = new TimeSpan();
lateaftertime = lateafter - Convert.ToDateTime(intime);

我想让迟到的结果总是正面的.. 请帮帮我..

3 个答案:

答案 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());