dtmStartTime = "03/15/2006 09:00:20 PM"
dtmEndTime = Now
strUpTime = DateDiff("s", dtmStartTime, dtmEndTime)
MsgBox ConvTime(strUpTime, 5, True, True, ":")
Function ConvTime(Seconds, Level, fullreturn, _
display_text, delimiter)
'Seconds - The seconds to be converted
'Level - up to what detail should seconds be broken to.
'Values:
'0 = Seconds 2 = Hours 4 = Weeks
'1 = Minutes 3 = Days 5 = Years
'Fullreturn - should the function return all levels e.g. 4 days, 13 hours,
'34 minutes, 56 seconds
'or should just give the top level requested e.g. 4 days.
'display_text - should there be text in the returned value?
'This adds "years", "weeks" and etc. after each value returned.
'delimiter - if display_text is set to false, then use the following delimiter
'to separate values.
If ((Seconds > 2147483647) Or (Level > 5) Or _
(Len(delimiter) > 1)) Then
ConvTime = 0
Exit Function
End If
Dim Minutes, Hours, Days
Dim Weeks, Years
Dim Minutes_, Hours_, Days_
Dim Weeks_, Years_
Minutes = Seconds \ 60
Hours = Minutes \ 60
Days = Hours \ 24
Weeks = Days \ 7
Years = Days \ 365
Seconds_ = Seconds - (60 * Minutes)
Minutes_ = Minutes - (60 * Hours)
Hours_ = Hours - (24 * Days)
Days_ = Days - (7 * Weeks)
Weeks_ = Weeks - (52 * Years)
If (fullreturn = True) Then
Select Case Level
Case 0
If (display_text = True) Then
ConvTime = Seconds & " seconds."
Else
ConvTime = Seconds
End If
Case 1
If (display_text = True) Then
ConvTime = Minutes & " minutes, " & Seconds_ & " seconds"
Else
ConvTime = Minutes & delimiter & Seconds_
End If
Case 2
If (display_text = True) Then
ConvTime = Hours & " hours, " & Minutes_ & " minutes, " _
& Seconds_ & " seconds"
Else
ConvTime = Hours & delimiter & Minutes_ & delimiter & Seconds_
End If
Case 3
If (display_text = True) Then
ConvTime = Days & " days, " & Hours_ & " hours, " & _
Minutes_ & " minutes, " & Seconds_ & " seconds"
Else
ConvTime = Days & delimiter & Hours_ & delimiter & _
Minutes_ & delimiter & Seconds_
End If
Case 4
If (display_text = True) Then
ConvTime = Weeks & " weeks, " & Days_ & " days, " & Hours_ & _
" hours, " & Minutes_ & " minutes, " & Seconds_ & " seconds"
Else
ConvTime = Weeks & delimiter & Days_ & delimiter & Hours_ & _
delimiter & Minutes_ & delimiter & Seconds_
End If
Case 5
If (display_text = True) Then
ConvTime = Years & " years, " & Weeks_ & " weeks, " & Days_ & " days, " & Hours_ & " hours, " & Minutes_ & " minutes, " & Seconds_ & " seconds"
Else
ConvTime = Years & delimiter & Weeks_ & delimiter & Days_ & delimiter & Hours_ & delimiter & Minutes_ & delimiter & Seconds_
End If
Case Else
ConvTime = 0
End Select
Else
Select Case Level
Case 0
If (display_text = True) Then
ConvTime = Seconds & " seconds."
Else
ConvTime = Seconds
End If
Case 1
If (display_text = True) Then
ConvTime = Minutes & " minutes."
Else
ConvTime = Minutes
End If
Case 2
If (display_text = True) Then
ConvTime = Hours & " hours."
Else
ConvTime = Hours
End If
Case 3
If (display_text = True) Then
ConvTime = Days & " days."
Else
ConvTime = Days
End If
Case 4
If (display_text = True) Then
ConvTime = Weeks & " weeks."
Else
ConvTime = Weeks
End If
Case 5
If (display_text = True) Then
ConvTime = Years & " years."
Else
ConvTime = Years
End If
Case Else
ConvTime = 0
End Select
End If
End Function