On Thursday, February 13, 2014 23:37:13 Timothee Cour wrote:There is no function for that, and no one's ever asked for anything like it,
> Is there a function to do this?
> If not and I/someone writes it, is there interest to add it to std.datetime?
>
> Duration t = ...;
> t.to!string => 5 secs, 889 ms, and 811 ìs
> t.round.to!string => 5 secs
>
> t=...;
> t.to!string => 889 ms, and 811 ìs
> t.round.to!string => 889 secs
>
> Use case: shorter logs.
so I don't know how worthwhile it is to add. However, one possible
implementation would be
auto roundToLargest(Duration d)
{
foreach(units; TypeTuple!("weeks", "days", "hours", "minutes",
"seconds", "msecs", "usecs"))
{
immutable value = d.total!units();
if(value != 0)
return dur!units(value);
}
return d;
}
- Jonathan M Davis