Interval.expand

Expands the interval forwards and/or backwards in time. Effectively, it does begin -= duration and/or end += duration. Whether it expands forwards and/or backwards in time is determined by dir.

  1. void expand(D duration, Direction dir)
    struct Interval(TP)
    pure
    void
    expand
    (
    D
    )
    if (
    __traits(compiles, begin + duration)
    )
  2. void expand(T years, T months, AllowDayOverflow allowOverflow, Direction dir)

Parameters

duration D

The duration to expand the interval by.

dir Direction

The direction in time to expand the interval.

Throws

std.datetime.date.DateTimeException this interval is empty or if the resulting interval would be invalid.

Examples

auto interval1 = Interval!Date(Date(1996, 1, 2), Date(2012, 3, 1));
auto interval2 = Interval!Date(Date(1996, 1, 2), Date(2012, 3, 1));

interval1.expand(2);
assert(interval1 == Interval!Date(Date(1994, 1, 2), Date(2014, 3, 1)));

interval2.expand(-2);
assert(interval2 == Interval!Date(Date(1998, 1, 2), Date(2010, 3, 1)));

Meta