Convert seconds to compound duration: Difference between revisions
Content added Content deleted
m (Added Sidef) |
|||
Line 1,099: | Line 1,099: | ||
println!("After: {}", ct); |
println!("After: {}", ct); |
||
}</lang> |
}</lang> |
||
=={{header|Sidef}}== |
|||
{{trans|Perl 6}} |
|||
<lang ruby>func polymod(n, *divs) { |
|||
gather { |
|||
divs.each { |i| |
|||
var m = take(n % i) |
|||
(n -= m) /= i |
|||
} |
|||
take(n) |
|||
} |
|||
} |
|||
func compound_duration(seconds) { |
|||
(polymod(seconds, 60, 60, 24, 7) ~Z <sec min hr d wk>).grep { |a| |
|||
a[0] > 0 |
|||
}.reverse.map{.join(' ')}.join(', ') |
|||
} |
|||
[7259, 86400, 6000000].each { |s| |
|||
say "#{'%7d' % s} sec = #{compound_duration(s)}" |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
7259 sec = 2 hr, 59 sec |
|||
86400 sec = 1 d |
|||
6000000 sec = 9 wk, 6 d, 10 hr, 40 min |
|||
</pre> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |