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