2009-04-28 13 views
0

Gibt es eine Funktion zum Konvertieren einer bestimmten Anzahl von Sekunden in eine Woche/Tag/Stunde/Minute/Sekunde Format in VBScript?Dauer vbscript (vbs) Funktion

zB: 969.234 Sekunden = 1wk 4 Tage 5 Stunden 13mins 54secs

Antwort

1
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" 
1

No in Funktion gebaut, das zu tun.

Hier ist ein 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