0

通常の時計のように経過時間を印刷するラベルを追加したいのですが (秒が「59」に達したら、カウンターに「1」分を追加します)、秒が数値「30」に達すると、私のタイムスパンは分を追加します...私が間違っていることは何ですか?

    Dim ElapsedTime As TimeSpan

 While log_button.Text = "Stop logger"
            ElapsedTime = Now().Subtract(StartTime)
            Label5.Text = String.Format("Minutos transcurridos: {0:00}:{1:00}", CInt(ElapsedTime.TotalMinutes) Mod 60, CInt(ElapsedTime.TotalSeconds) Mod 60)
            Application.DoEvents()
 End While

次のような間違った増分が得られます。

ここに画像の説明を入力

ここに画像の説明を入力

00:01

...

00:28

00:29

00:30

01:31

01:32

等...

4

1 に答える 1

2

これは、合計分数を表す浮動小数点数を丸めているためです。数に達する0.5と、1 に丸められます。

メソッドを使用しFloorて数値を切り捨てます。

CInt(Math.Floor(ElapsedTime.TotalMinutes)) Mod 60

Minutesまた、すべてのことを行うプロパティを使用することもできます。

ElapsedTime.Minutes
于 2012-12-01T13:38:59.007 に答える