Interval.expand

Expands the interval forwards and/or backwards in time. Effectively, it subtracts the given number of months/years from begin and adds them to end. Whether it expands forwards and/or backwards in time is determined by dir.

  1. void expand(D duration, Direction dir)
  2. void expand(T years, T months, AllowDayOverflow allowOverflow, Direction dir)
    struct Interval(TP)
    static if(__traits(compiles, begin.add!"months"(1)) && __traits(compiles, begin.add!"years"(1)))
    void
    expand
    (
    T
    )

Parameters

years T

The number of years to expand the interval by.

months T

The number of months to expand the interval by.

allowOverflow AllowDayOverflow

Whether the days should be allowed to overflow on begin and end, causing their month to increment.

dir Direction

The direction in time to expand the interval.

Throws

std.datetime.date.DateTimeException if 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