2011-08-17 18 views
1

時間、分、秒の数値のアップとダウンから値を取得しています。 15::時間の書式設定(HH:MM:SS)

問題は、例えば、時間があれば、例えば、9.15は9として、それが表示されますだということである私がやりたいことはフォーマットがそれらである

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 

答えて

2

これを試してみてください:

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 
+0

それは素晴らしい仕事...ありがとう! – Brian

+0

ティムを侮辱するのではなく、あなたが間違った答えを受け入れた、ho1の答えはより良い方法です。 – pingoo

+0

@ Rene147 - まったく侮辱ではなく、事実だけの陳述。私はho1の答えに私のコメントで多くの同じことを言ったと思う:) – Tim

10

あなたは文字列に複数回、すべてを変換することによって、少し後方にそれをやっているように見える、このような何かしてみてください:

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

TimeSpan.ToStringのドキュメントは便利です。

編集:Timのデータ型に関するコメントを反映するようにコードを更新しました。

+0

私の提案よりもはるかにすっきり:) – Tim

+0

は、MSDNによると、[値]はそうそう、OPはInteger型にキャストする必要があります、10進数です。 – Tim

1

は、TimeSpanオブジェクトを使用してみてください、それはあなたのためのすべてのハードワークを行う必要があります!

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

lblST.Text = nmTime.ToString 
lblST.Visible = True