2010-12-03 3 views
1

質問:残りの時間をhh:mm:ssで計算するには、どのステップ、現在のステップ、時間(ミリ秒)を知っていますか?タイトル通り、これは動作していない、理由を理解することはできません

// Get total steps, current step and duration in milliseconds 
    int current = stats[0]; int total = stats[1]; int duration = stats[2]; 

    // Calculate the time span (of remaining time) 
    var remaining = TimeSpan.FromMilliseconds((total - current) * duration); 

    // Update the label 
    label.Text = string.Format("Tempo rimanente: {0}", 
    (new DateTime(remaining.Ticks)).ToString("hh:mm:ss")); 
+0

_What_が動作していませんか?これは何を生産すると思いますか? 'stats'変数とは何ですか?それには何が含まれていますか? – Oded

答えて

1

でも

remaining.Hours + ":" + remaining.Minutes + ":" + remaining.Seconds); 

以上に

(new DateTime(remaining.Ticks)).ToString("hh:mm:ss")); 

変更してみてください:

// Update the label 
label.Text = string.Format("Tempo rimanente: {0:00}:{1:00}:{2:00}", 
    remaining.Hours, remaining.Minutes, remaining.Seconds) 
+0

時間、分、または秒の値が10より小さい場合、出力は(例)0:9:7と非常に読みにくいです... – gremo

+0

@Gremo:上記の編集を参照してください –

+0

フォーマット{0:00}:{1:00}:{2:00}を理解できない場合でもその意味? – gremo

1

は、なぜあなたはまったくDateTimeTimeSpanを変換しようとしていますか? 「残存時間」は、DateTimeではなく、TimeSpanに適した概念です。 の場合はDateTimeとなりますが、それ以外の場合はTimeSpanを使用すると、「完了予定時刻」に変換することができます。

custom format abilitiesが.NET 4で実際に必要な場合はTimeSpanが得られますが、デフォルトの形式は少なくとも最初は大丈夫と思われます。

+0

時間幅をhh:mm:ss形式に変換する必要があります。計算は正しいのですか?表示されている残りの時間が間違っているので... – gremo

+0

@Gremo:大丈夫です...例を挙げると助けになります。 –

+0

応答のためにありがとう、DateTimeを使用する必要はありません。 – gremo

関連する問題