Convert seconds to compound duration: Difference between revisions

(→‎{{header|Java}}: added Java)
Line 618:
fmtsecs 6000000
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}}==
Anonymous user