2012-04-03 17 views
17

私は、何らかのアクションの期間を計算するタイムパンを生成するコードを持っています。 私がしたいことは、その結果(期間)を数字と任意の数で割ることです。時分秒での除算

どうすればいいですか?

+1

私はキャストしようとしたが、コンパイラはエラーを返します。 0.0000000004の結果が得られたら、その数値を4に分けたいと思います。これは単なる例です。 – Novak

+1

[Multiply TimeSpan in .NET]の複製が可能です(http://stackoverflow.com/questions/9909086/multiply-timespan-in-net) –

答えて

7

は参考

TimeSpan X = ...; 

var Result = X.TotalMilliseconds/WhatEverNumber; 

MSDNを参照してみてください。

+3

これは、あなたにTimeSpanではなく、倍数を与えます。他の答えを見てください。 – DCShannon

8

数字のTimeSpanTotal*のいずれかのプロパティを使用してください。

I.e.あなたが測定いくつかのコードの5回の反復を実行している場合は、イテレーションごとのミリ秒単位の平均数を取得するために

myTimeSpan.TotalMilliseconds/5 

を使用することができます。 Ticksを使用して基礎値を取得し、分割された結果から新しいTimeSpanを構築することができます。

+0

完全に、男!!! – Oded

5
TimeSpan ts = ... 
TimeSpan result = TimeSpan.FromTicks(ts.Ticks/divisor); 
25

あなたは、元のタイムスパンのダニを使用することができます。

var res = new TimeSpan(origSpan.Ticks/aNumberAnyNumber); 
+0

Upvotingはこれが最初の整数除算であるため、利用可能な場合はほとんど常により良い選択です。 – Ekevoo

+0

この便利な答えを見つけようとしているすべてのVB.NET開発者にとって:除算演算子は_integer_除算なので、VBの\演算子(バックスラッシュ)を使用してエラーを回避してください_Option Strict Onは 'Double'から 'Long' _。 –

0

はあなたが分割したいのかに依存しますが、あなたは秒をしたいとしましょう、あなたはtotalsecondsプロパティを使用することができます。

TimeSpan ts = new TimeSpan(4, 0, 0); //Four hours 

MessageBox.Show((ts.TotalSeconds/4).ToString()); 
3

古いの割合で新しいのTimeSpanで終わるしたい場合:

TimeSpan now = DateTime.Now.TimeOfDay; 
TimeSpan halfOfNow = new TimeSpan(now.Ticks/2); 
関連する問題