thanks!


On Fri, Feb 14, 2014 at 2:14 PM, Jonathan M Davis <jmdavisProg@gmx.com> wrote:
On Thursday, February 13, 2014 23:37:13 Timothee Cour wrote:
> 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.

There is no function for that, and no one's ever asked for anything like it,
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