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