I'm still learning AutoIt myself, but this took me a bit and I hope I can save someone else the headache.
Guess you could use it as a function and pass it the time as an argument if you'd like.
Enjoy!
Note: Should work ok, I ran a few 'tests' with different numbers and it seemed to work ok.
; timelimit is in seconds
$Timelimit = 130
$Timeleft = $Timelimit
Do
; if we've got more then 60s & less then 120s, then it's only 1 whole min left + sec(s)
If $Timeleft > 60 And $Timeleft < 120 Then
; if it's a whole min, no sec
If Int($Timeleft/60) = $Timeleft/60 Then
ProgressOn("", "Installer Time Left...", Int($Timeleft/60) & " Minute", -1, -1, 1)
; if it's got trailing sec, *still* single whole min left
Else
; if we've got single case sec
If ($Timeleft - (Int($Timeleft/60) * 60)) <= 1 Then
ProgressOn("", "Installer Time Left...", Int($Timeleft/60) & " Minute " & ($Timeleft - (Int($Timeleft/60) * 60)) & " Second", -1, -1, 1)
; or plural sec(s)
Else
ProgressOn("", "Installer Time Left...", Int($Timeleft/60) & " Minute " & ($Timeleft - (Int($Timeleft/60) * 60)) & " Seconds", -1, -1, 1)
EndIf
EndIf
; if we've got more then 1 whole min
ElseIf $Timeleft > 60 Then
; checking for whole min only, no sec...
If Int($Timeleft/60) = $Timeleft/60 Then
ProgressOn("", "Installer Time Left...", Int($Timeleft/60) & " Minutes", -1, -1, 1)
; if we have multiple min & sec
Else
; if we've got single case sec
If ($Timeleft - (Int($Timeleft/60) * 60)) <= 1 Then
ProgressOn("", "Installer Time Left...", Int($Timeleft/60) & " Minutes " & ($Timeleft - (Int($Timeleft/60) * 60)) & " Second", -1, -1, 1)
; or plural sec(s)
Else
ProgressOn("", "Installer Time Left...", Int($Timeleft/60) & " Minutes " & ($Timeleft - (Int($Timeleft/60) * 60)) & " Seconds", -1, -1, 1)
EndIf
EndIf
; if we've got less then 1 min, only sec left + we can just use the var now
Else
If $Timeleft <= 1 Then
ProgressOn("", "Installer Time Left...", $Timeleft & " Second", -1, -1, 1)
Else
ProgressOn("", "Installer Time Left...", $Timeleft & " Seconds", -1, -1, 1)
EndIf
EndIf
ProgressSet(($Timeleft / $Timelimit) * 100)
Sleep(1000)
$Timeleft = $Timeleft - 1
Until $Timeleft < 0
PS - I left the notes for logic flow