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