String型の時間データで計算を行うには...

解決


めい  2005-12-14 17:16:05  No: 128877

環境はVB6,Windows2000です。
 
早速質問させていただきます。
”09:10:12.431”といったようなString型の時間データで計算を行うには
どのようにすればよろしいのでしょうか?

例えば下記のようなデータがある場合、
Dim a As String
Dim b As String
a = "09:10:12.123"  '9時10分12秒123
b = "10:11:13.234"  '10時11分13秒234

ここで、bからaを引いた時間”01:01:01.111”という値(差分)を計算で
算出したいのですが...
a,bの値をどのような型に変換して行えばいいのかわからず困っています。
どなたかご教授の程よろしくお願いいたします。


名無し  2005-12-14 18:00:09  No: 128878

時間と少数以下を分割するとか。


めい  2005-12-15 17:02:01  No: 128879

名無しさま

ご指導の通り少数以下を分割し計算することで期待通りの
動作となりました。
(情けないことに私には分割という発想が出てきませんでした)
本当にありがとうございました。

以下ご参考までに...

Dim a       As String
Dim b       As String
Dim time1   As Date     '小数点より上位
Dim time2   As Integer  '小数点より下位
Dim time3   As String   '計算結果  

a = "09:10:12.123"  '9時10分12秒123
b = "10:11:13.234"  '10時11分13秒234      

time1 = CDate(Left(b, 8)) - CDate(Left(a, 8))
time2 = Val(Right(b, 3)) - Val(Right(a, 3))

'ミリの位の減算がマイナスになったときの処理
If time2 <= -1 Then
    time2 = 1000 + time2
    time1 = time1 - CDate("00:00:01")
End If

time3 = Format(time1, "hh:mm:ss") & "." & Format(time2, "000")
debug.Print time3


めい  2005-12-15 17:02:56  No: 128880

解決忘れ...


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加