Attribute VB_Name = "modAPI"
Public Declare Function GetTickCount Lib "kernel32" () As Long

Public Function GetDuration(ByVal Duration As Long) As String
    On Error Resume Next
    Dim strDuration As String
    Dim Sec As Long
    Dim Min As Long
    Dim Hour As Long
    Dim Day As Long
    Dim Week As Long
    Sec = Duration Mod 60
    If Sec >= 60 Then
        Sec = Sec Mod 60
        Min = Int(Duration / 60)
    End If
    If Min < 60 Then
        Min = Int(Duration / 60)
    End If
    If Min >= 60 Then
        Hour = Int(Min / 60)
        Min = Min Mod 60
    End If
    If Hour >= 24 Then
        Day = Int(Hour / 24)
        Hour = Hour Mod 24
    End If
    If Day >= 7 Then
        Week = Int(Day / 7)
        Day = Day Mod 7
    End If
    strDuration = " " & Format(Week, "0") & "weeks " & Format(Day, "0") & "days " & Format(Hour, "0") & "hours " & Format(Min, "0") & "mins " & Format(Sec, "0") & "secs"
    strDuration = Replace(strDuration, " 0weeks", vbNullString)
    strDuration = Replace(strDuration, " 0days", vbNullString)
    strDuration = Replace(strDuration, " 0hours", vbNullString)
    strDuration = Replace(strDuration, " 0mins", vbNullString)
    strDuration = Replace(strDuration, " 0secs", vbNullString)
    strDuration = Replace(strDuration, " 1weeks", " 1week")
    strDuration = Replace(strDuration, " 1days", " 1day")
    strDuration = Replace(strDuration, " 1hours", " 1hour")
    strDuration = Replace(strDuration, " 1mins", " 1min")
    strDuration = Replace(strDuration, " 1secs", " 1sec")
    If LenB(strDuration) = 0 Then strDuration = "0secs"
    GetDuration = Trim$(strDuration)
End Function