dポイントプレゼントキャンペーン実施中!

VB6で時間計算のソフトを作っているのですが、"08:20"を"0820"、"17:10"を"1710"と入力して、"1710"から"0820"の差を分単位"480"で表示したいのですが、どうしたらいいですか?
また、時間の平均計算の方法はどうしたらいいですか?

A 回答 (2件)

左から2桁、右から2桁取り出し、数値に変換して、分に換算して引き算します。



>時間の平均計算の方法はどうしたらいいですか?
分でも秒でもいいので、単位を揃えて、全部足して、個数で割ります。
----------------------------------------------------------------
Public Sub Sample()
Dim STime As String 'HHMM'
Dim ETime As String
Dim SM As Long, EM As Long
Dim DiffM As Long

STime = "0820" '入力した文字列
ETime = "1710"

SM = StrToTime(STime) '分に換算
EM = StrToTime(ETime)

DiffM = EM - SM '引く
MsgBox DiffM & "分" '530分

MsgBox aveM(StrToTime("0820"), StrToTime("1710"), StrToTime("1550")) & "分" 'それぞれ分に換算して平均を出す

End Sub

Public Function StrToTime(t As String) As Long
'"HHMM" 形式の文字列を分を基準とする時間に変換する

StrToTime = CLng(Left(t, 2)) * 60 + CLng(Right(t, 2))

End Function

Public Function aveM(ParamArray Ms()) As Double
Dim n As Integer
Dim sum As Double
Dim x

sum = 0#
n = 0

For Each x In Ms
sum = sum + x '引数を全部足す
n = n + 1 '引数の個数を数える
Next
aveM = sum / n '合計を個数で割る(平均)
End Function
    • good
    • 0

「:」付け加えたらどうですかね。



Dim D1 As String
Dim D2 As String
Dim T1 As Date
Dim T2 As Date
Dim Z As Long

D1 = "0820"
D2 = "1710"

T1 = Mid(D1, 1, 2) & ":" & Mid(D1, 3, 2)
T2 = Mid(D2, 1, 2) & ":" & Mid(D2, 3, 2)

Z = (T2 - T1) * 1440
Debug.Print T1, T2, Z
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!