Is there a function to convert a specified number of seconds into a week/day/hour/minute/second time format in vbscript?
eg: 969234 seconds = 1wk 4days 5hrs 13mins 54secs
From stackoverflow
-
Dim myDate dim noWeeks dim noDays dim tempWeeks dim pos myDate = DateAdd("s",969234,CDate(0)) tempWeeks = FormatNumber(myDate / 7,10) pos = instr(tempWeeks, ".") if pos > 1 then tempWeeks = left(myDate, pos -1) end if noWeeks = Cint(tempWeeks) noDays = Cint(((myDate / 7) - noWeeks) * 7) wscript.echo noWeeks & "wk " & noDays & "days " & datepart("h", myDate) & "hrs " & datepart("n", myDate) & "mins " & datepart("s", myDate) & "secs"
-
No built in function to do that.
Here is a quick and dirty one:-
Function SecondsToString(totalSeconds) Dim work : work = totalSeconds Dim seconds Dim minutes Dim hours Dim days Dim weeks seconds = work Mod 60 work = work \ 60 minutes = work Mod 60 work = work \ 60 hours = work Mod 24 work = work \ 24 days = work Mod 7 work = work \ 7 weeks = work Dim s: s = "" Dim renderStarted: renderStarted = False If (weeks <> 0) Then renderStarted = True s = s & CStr(weeks) If (weeks = 1) Then s = s & "wk " Else s = s & "wks " End If End If If (days <> 0 OR renderStarted) Then renderStarted = True s = s & CStr(days) If (days = 1) Then s = s & "day " Else s = s & "days " End If End If If (hours <> 0 OR renderStarted) Then renderStarted = True s = s & CStr(hours) If (hours = 1) Then s = s & "hr " Else s = s & "hrs " End If End If If (minutes <> 0 OR renderStarted) Then renderStarted = True s = s & CStr(minutes) If (minutes = 1) Then s = s & "min " Else s = s & "mins " End If End If s = s & CStr(seconds) If (seconds = 1) Then s = s & "sec " Else s = s & "secs " End If SecondsToString = s End Function
0 comments:
Post a Comment