25 lines
964 B
AppleScript
25 lines
964 B
AppleScript
on secondsToCompoundDuration(sec)
|
|
if ((sec's class is not integer) or (sec < 0)) then ¬
|
|
error "secondsToCompoundDuration() handler only accepts positive integers."
|
|
-- The task description notwithstanding, return "0 sec" if the input is 0.
|
|
if (sec = 0) then return "0 sec"
|
|
-- Otherwise perform the described task.
|
|
set units to {weeks, days, hours, minutes, 1}
|
|
set suffixes to {" wk, ", " d, ", " hr, ", " min, ", " sec, "}
|
|
set output to ""
|
|
|
|
repeat with i from 1 to 5
|
|
set unit to units's item i
|
|
set unitValue to sec div unit
|
|
if (unitValue > 0) then set output to output & unitValue & suffixes's item i
|
|
set sec to sec mod unit
|
|
if (sec = 0) then exit repeat
|
|
end repeat
|
|
|
|
return output's text 1 thru -3
|
|
end secondsToCompoundDuration
|
|
|
|
return secondsToCompoundDuration(7259) & linefeed & ¬
|
|
secondsToCompoundDuration(86400) & linefeed & ¬
|
|
secondsToCompoundDuration(6000000)
|