значение разности временного интервала всегда положительное - PullRequest
24 голосов
/ 19 января 2012

я хочу преобразовать значение разности временного интервала всегда положительное

Мой код здесь:

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

Я хочу, чтобы результат позднее всегда был положительным. пожалуйста, помогите мне ..

Ответы [ 3 ]

58 голосов
/ 20 января 2012

Вы можете использовать lateaftertime.Duration(), чтобы получить неотрицательный диапазон.

4 голосов
/ 20 января 2012

Вы можете использовать Math.Abs ​​():

        lateaftertime = new TimeSpan(Math.Abs(lateaftertime.Ticks));

Пользователь V4Vendetta сделал правильный вызов в комментарии, хотя. Используйте свойство TimeSpan.Duration, оно всегда возвращает абсолютное значение.

2 голосов
/ 20 января 2012

ОК, я предполагаю, что вы используете 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());
...