- ベストアンサー
VBで時間計算の方法
VB6で時間計算のソフトを作っているのですが、"08:20"を"0820"、"17:10"を"1710"と入力して、"1710"から"0820"の差を分単位"480"で表示したいのですが、どうしたらいいですか? また、時間の平均計算の方法はどうしたらいいですか?
- みんなの回答 (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
その他の回答 (1)
- otto0001otto
- ベストアンサー率25% (64/249)
「:」付け加えたらどうですかね。 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