2012-01-19 6 views
15

タイムスパンの差分値は、常に正、私は</p> <p>私のコードはここにある常に正のTimeSpan差分値を変換したい

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

iがlateaftertime常に正の結果を取得したい... は私を助けてください..

+0

[負のタイムスパンを処理する](https://stackoverflow.com/questions/1018643/handle-negative-time-spans) – Michael

答えて

1

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()); 
40

あなたは非負のスパンを取得するためにlateaftertime.Duration()を使用することができます。

+12

の複製があります。そのようなことは必要ありません.Duration()を使用してください絶対 'TimeSpan' – V4Vendetta

+0

@ V4Vendetta:私はそれを知らなかった。毎日何かを学ぶ。それははるかに良いアプローチです。私は私の答えを更新しました。 – recursive

+1

あなたの答えを変える代わりに、あなたは@ V4Vendettaに彼の投稿をしてもらうように頼んだ。これは全く私の個人的な意見ですが、私はあなたが彼の答えのアップボントを得ることは不公平だと思います。 – julealgon

2

あなたはMath.Abs​​()を使用することができます。

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

ユーザーV4Vendettaはいえコメントに右の呼び出しを行いました。 TimeSpan.Durationプロパティを使用すると、常に絶対値が返されます。

関連する問題