Function Convtime(date1 As Date, date2 As Date) As String
'
'功能 : 计算二个时间的时间差
'
'参数 : date1 是较早的时间, Variant (Date)。
' date2 是较晚的时间, Variant (Date)。
'
'若要计算两个日期之时间差,计算顺序是从 date1 到 date2
'
'返回值 : 时间差的组合字串, 例如 2年21天13小时5分钟3秒
'
Dim wsecond As Long '总秒数 / 剩余秒数
Dim wminute As Long '总分钟数 / 剩余分钟数
Dim whour As Long '总时数 / 剩余时数
Dim wday As Long '总天数 / 剩余天数
Dim wyear As Long '总年数
wsecond = DateDiff("s", date1, date2) '总秒数
If wsecond > 60 Then
wminute = wsecond \ 60 '总分钟数
wsecond = wsecond Mod 60 '计算剩余秒数
End If
If wminute > 60 Then
whour = wminute \ 60 '总时数
wminute = wminute Mod 60 '计算剩余分钟数
End If
If whour > 24 Then
wday = whour \ 24 '总天数
whour = whour Mod 24 '计算剩余时数
End If
If wday > 365 Then
wyear = wday \ 365 '总年数
wday = wday Mod 365 '计算剩余天数
End If
'拼凑计算结果字串
If wyear > 0 Then Convtime = Convtime & wyear & "年"
If wday > 0 Then Convtime = Convtime & wday & "天"
If whour > 0 Then Convtime = Convtime & whour & "小时"
If wminute > 0 Then Convtime = Convtime & wminute & "分钟"
If wsecond > 0 Then Convtime = Convtime & wsecond & "秒"
End Function
Dim TimeOut As String'出去时刻表
Dim TimeIn As String'进来时刻表
Dim MinOut As Integer'出去的时间(3:25:00=3*60+25)
Dim MinIn As Integer'进来的时间(5:30:20=5*60+30)
Dim MinuteNum As Integer 'MinIn-MinOut
'这样可以得到
Private Sub Command3_Click()
Dim a1 As Date, a2 As Date, b1 As Date, b2 As Date
Dim timeCount As Date
Dim xx As Single, hh As Long, mm As Long, ss As Long
a1 = #1:06:28 PM# '第一次出去
a2 = #3:56:01 PM# '回来
b1 = #4:06:18 PM# '第二次出去
b2 = #5:12:01 PM# '回来
xx = DateDiff("s", a1, a2) + DateDiff("s", b1, b2)
hh = Int(xx / 3600)
mm = Int((xx - 3600 * hh) / 60)
ss = xx - hh * 3600 - mm * 60
timeCount = Format(hh & ":" & mm & ":" & ss, "hh:mm:ss")
MsgBox "出去时间总共为:" & timeCount
End Sub