Время форматирования (ЧЧ: ММ: СС) - PullRequest
1 голос
/ 17 августа 2011

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

Проблема в том, что, например, если время, например, 9:15 утра, оно будет отображаться как 9: 15: 0

То, что я хочу сделать, это отформатировать их так, чтобы любое из значений (Часы, Минуты или секунды) было меньше 10, оно добавит 0 перед числом, так как число будет отображаться как 09: 15: 00.

То, что я пытался это, но это не работает:

Sub BtnSetClick(sender As Object, e As EventArgs)

        lbl8.Visible = True

        Dim nmTime As String = nmHour.Value.ToString + nmMin.Value.ToString + nmSec.Value.ToString



        lblST.Text.Format(nmTime.ToString, "HH:MM:SS")


        lblST.Text = (nmTime)

        lblST.Visible = True

    End Sub

Ответы [ 3 ]

10 голосов
/ 17 августа 2011

Вы, кажется, делаете это немного задом наперед, конвертируя все в строку несколько раз, попробуйте что-то вроде этого:

Dim ts As new TimeSpan(CInt(nmHour.Value), CInt(nmMin.Value), CInt(nmSec.Value))
lblST.Text = ts.ToString("HH:MM:SS")

Документация для TimeSpan.ToString полезна.

Редактировать: Обновлен код для отражения комментария Тима о типе данных.

2 голосов
/ 17 августа 2011

Попробуйте это:

Sub BtnSetClick(ByVal sender As Object, ByVal e As EventArgs)          

    lbl8.Visible = True          
    Dim nmTime As String = nmHour.Value.ToString().PadLeft(2, '0') + nmMin.Value.ToString().PadLeft(2, '0') + nmSec.Value.ToString().PadLeft(2, '0')            

    lblST.Text = nmTime          
    lblST.Visible = True      
End Sub 
1 голос
/ 17 августа 2011

попробуйте использовать объект TimeSpan, он должен сделать всю тяжелую работу за вас!

Dim nmTime As New TimeSpan(nmHour.Value, nmMin.Value, nmSec.Value)

lblST.Text = nmTime.ToString
lblST.Visible = True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...