6

大量のデータを処理するコードがあったので、木曜日に開始し、週末に実行したままにしました。月曜日に戻ってきて、それが終わったのを見ました。ストップウォッチ機能を使用して、コードが実行された時間の長さを追跡しました。しかし、私は結局

Elapsed: 2.18:57:55.xxx

出力は通常H:M:SSであることは理解していますが、特に何日も実行されているため、最初の桁がわかりません。数時間から数日に変換されただけですか?それが壊れたほど長く実行したままにしましたか?

編集:申し訳ありませんが、月曜日に終了したという意味ではありませんでした。私は月曜日までに(私がコンピューターに戻ったとき)それが行われたことを意味しました。

4

2 に答える 2

8

はい-それは次の形式ですTimeSpan.ToString

返される文字列は「c」形式指定子でフォーマットされ、次の形式になります。

[-][d。]hh:mm:ss [.fffffff]

角かっこ([および])内の要素は、返される文字列に含まれない場合があります。コロンとピリオド(:および。)はリテラル文字です。非文字要素を次の表に示します。ToString()メソッドによって返される文字列は、カルチャに依存しないことに注意してください。

合計時間を表示するフォーマット指定子がないため、計算する必要があります。時間を単一の数値として表示する場合は、次を使用します。

TimeSpan ts = new TimeSpan(2,18,57,55);
    
var output = string.Format("{0}:{1}",
                           ts.Days*24 + ts.Hours,
                           ts.ToString("mm\\:ss\\.ffff"));

//output =  `66:57:55.0000`
于 2013-03-04T14:54:20.283 に答える
0

これは予想される動作です。Timespan.ToString()のドキュメントから:

返される文字列は「c」形式指定子でフォーマットされ、次の形式になります。

[-][d。]hh:mm:ss [.fffffff]

"d"-時間間隔の日数。時間間隔が1日未満の場合、この要素は省略されます。

于 2013-03-04T14:55:06.830 に答える