0

こんにちは、私は以下のコードを使用してタイマーを開始します。Label2.Text = Difference1.TotalMinutes.ToString("N0") ただし、分は常に 30 秒です。ラベルには、30 秒しか経過していないときは 1 分と表示され、その後は常に 30 秒遅れています。これをどのように校正できますか?ありがとうロブ

4

1 に答える 1

1

TimeSpan.TotalMinutesプロパティの定義を見ると、次のように記載されています。

現在の TimeSpan 構造体の値を整数分と小数分で取得します。

したがって、ToString(" N0 ") 形式を使用すると、小数点以下の桁数が不要であり、数値形式であるため、値が切り上げられます。TimeSpan Custom Formatsこの場合、特に%m Custom Format 文字列の使用を検討する必要があります。次のようになります。

 Label2.Text = Difference1.TotalMinutes.ToString("%m") 

テストに使用したコード。タイマー間隔は 1000 に設定され、有効になっています。

Public Class Form1
    Dim startTime As DateTime = DateTime.Now
    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Label1.Text = (DateTime.Now - startTime).ToString("%m")
        Label2.Text = (DateTime.Now - startTime).TotalSeconds.ToString("N0")
    End Sub
End Class
于 2013-02-06T06:30:59.957 に答える