3

1.567または22.654またはのような数値がたくさんあり、220.123それらを時間に変換したい00:00:00.000 (hours/Minutes/Seconds.Miliseconds)

これを効率的に達成する方法について何かアドバイスはありますか?あまりいじることなく。

可能な場合はvb.netソリューションが必要です。

よろしくお願いします。

4

1 に答える 1

6

DateTime.AddHoursメソッドを使用します。doubleパラメータとして値を取ります:

Dim d as DateTime = (new DateTime()).AddHours(1.567)

結果は{0001-01-01 01:34:01}

次に、メソッドを使用DateTime.ToString()して、目的の形式で時間を取得できます。

Dim s as String = d.ToString("HH:mm:ss.fff")

結果は"01:34:01.200"

0からまでのすべての値で機能します23.99

アップデート

入力値が時間を表し、24を超える可能性がある場合は、次TimeSpanの代わりに使用できDateTimeます。

Dim d as TimeSpan = TimeSpan.FromHours(220.123)
Dim s As String = string.Format("{0}:{1}:{2}.{3}", CInt(d.TotalHours), d.Minutes, d.Seconds, d.Milliseconds)
于 2013-03-26T10:56:59.793 に答える