Convert seconds to compound duration: Difference between revisions

Content added Content deleted
(Added C++ solution)
Line 601: Line 601:
86400: 1 d
86400: 1 d
6000000: 9 wk, 6 d, 10 hr, 40 min</lang>
6000000: 9 wk, 6 d, 10 hr, 40 min</lang>

=={{header|Mathematica}}==
<lang Mathematica>
compoundDuration[x_Integer] :=
StringJoin @@ (Riffle[
ToString /@ ((({Floor[x/604800],
Mod[x, 604800]} /. {a_, b_} -> {a, Floor[b/86400],
Mod[b, 86400]}) /. {a__, b_} -> {a, Floor[b/3600],
Mod[b, 3600]}) /. {a__, b_} -> {a, Floor[b/60],
Mod[b, 60]}), {" wk, ", " d, ", " hr, ", " min, ",
" sec"}] //. {a___, "0", b_, c___} -> {a, c})

Grid[Table[{n, "secs =",
compoundDuration[n]}, {n, {7259, 86400, 6000000}}],
Alignment -> {Left, Baseline}]

</lang>

{{out}}
<pre>
7259 secs = 2 hr, 59 sec
86400 secs = 1 d,
6000000 secs = 9 wk, 6 d, 10 hr, 40 min,
</pre>


=={{header|Perl}}==
=={{header|Perl}}==