Convert seconds to compound duration: Difference between revisions
Content added Content deleted
(First implementation in PL/I.) |
(added Rust solution) |
||
Line 708: | Line 708: | ||
0.00 seconds: 0 sec |
0.00 seconds: 0 sec |
||
</pre> |
</pre> |
||
=={{header|Rust}}== |
|||
<lang rust>fn seconds_to_compound(secs: u32) -> String { |
|||
let part = |comps: &mut String, c: &str, one: u32, secs: &mut u32| { |
|||
if *secs >= one { |
|||
let div = *secs / one; |
|||
comps.push_str(&(div.to_string() + c)); |
|||
*secs -= one * div; |
|||
if *secs > 0 { |
|||
comps.push_str(", "); |
|||
} |
|||
} |
|||
}; |
|||
let mut secs = secs; |
|||
let mut comps = String::new(); |
|||
part(&mut comps, "w", 60 * 60 * 24 * 7, &mut secs); |
|||
part(&mut comps, "d", 60 * 60 * 24, &mut secs); |
|||
part(&mut comps, "h", 60 * 60, &mut secs); |
|||
part(&mut comps, "m", 60, &mut secs); |
|||
part(&mut comps, "s", 1, &mut secs); |
|||
comps |
|||
}</lang> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |