タイムスパン差分値を常に正に変換したい
私のコードはここにあります:
TimeSpan lateaftertime = new TimeSpan();
lateaftertime = lateafter - Convert.ToDateTime(intime);
いつもポジティブなレイトアフタータイムの結果を得たいです。助けてください。
lateaftertime.Duration()
を使用して、負でないスパンを取得できます。
Math.Abs()を使用できます:
lateaftertime = new TimeSpan(Math.Abs(lateaftertime.Ticks));
しかし、ユーザーV4Vendettaはコメントで正しい電話をかけました。 TimeSpan.Durationプロパティを使用すると、常に絶対値が返されます。
OK、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());