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}}==