Возвращение десятых и сотых секунды с секундомера - PullRequest
0 голосов
/ 01 февраля 2012

Итак, я все ближе к тому, чтобы заставить таймер работать так, как я хочу, с одной маленькой проблемой.

Я нашел следующий пост о возврате миллисекунды и наносекунды: Как сделатьвы конвертируете отметки секундомера в наносекунды, миллисекунды и секунды?

Но то, что я пытаюсь сделать, это показывать только десятые доли сотых секунды при желании.

У меня естьследующий код:

Private Sub TotalTimer_Tick(sender As System.Object, e As System.EventArgs) Handles TotalTimer.Tick
    Dim elapsed As TimeSpan = Me.matchStopwatch.Elapsed

    Me.MatchClockLbl.Text = String.Format("{0:0}:{1:00}:{2:00}.{3:###}", _
                                   Math.Floor(elapsed.TotalHours), _
                                   elapsed.Minutes, _
                                   elapsed.Seconds, _
                                   (elapsed.Milliseconds / 100))

End Sub

Теперь я попытался изменить часть кода с {3: 000} на {3: 0} или {3:00}, но все, что он делает, это меняет формат, он не 't фактически удаляют 1000-ые или 1000-ые цифры, они все еще отображаются.

Я также нашел это в MSDN:

http://msdn.microsoft.com/en-us/library/ee372287.aspx#fSpecifier

Но я продолжаю получать sf или s / f или что-то не то.

РЕДАКТИРОВАТЬ: Добавлено в модифицированной версии кода, спасибо Одед.Теперь новая проблема заключается в том, что метка любит время от времени мерцать дополнительные цифры.

1 Ответ

1 голос
/ 01 февраля 2012

Разделите Milliseconds на 10, чтобы получить сотую долю секунды, и на 100, чтобы получить десятую долю секунды.

Это работает с помощью целочисленного деления - по существу, отбрасывая наименее значимые цифры и предполагается, что Milliseconds возвращает не более 3 цифр.

...