Convert seconds to compound duration: Difference between revisions

Content added Content deleted
(→‎{{header|Java}}: added Java)
Line 618: Line 618:
fmtsecs 6000000
fmtsecs 6000000
9 wk, 6 d, 10 hr, 40 min</lang>
9 wk, 6 d, 10 hr, 40 min</lang>

=={{header|Java}}==
<lang java>public class CompoundDuration {

public static void main(String[] args) {
compound(7259);
compound(86400);
compound(6000_000);
}

private static void compound(long seconds) {
StringBuilder sb = new StringBuilder();

seconds = compoundUnit(sb, seconds, 7 * 86400, " wk, ");
seconds = compoundUnit(sb, seconds, 86400, " d, ");
seconds = compoundUnit(sb, seconds, 60 * 60, " hr, ");
seconds = compoundUnit(sb, seconds, 60, " min, ");

if (seconds > 0)
sb.append(seconds).append(" sec");
else if(sb.length() > 2)
sb.setLength(sb.length() - 2);

System.out.println(sb);
}

private static long compoundUnit(StringBuilder sb, long sec, long unit, String s) {
long n = 0;
if (sec > 0 && (n = sec / unit) > 0) {
sb.append(n).append(s);
sec %= (n * unit);
}
return sec;
}
}</lang>

<pre>2 hr, 59 sec
1 d
9 wk, 6 d, 10 hr, 40 min</pre>


=={{header|jq}}==
=={{header|jq}}==