std.datetime.interval.NegInfInterval.shift
- multiple declarations
Function NegInfInterval.shift
Shifts the end
of this interval forward or backwards in time by the
given duration (a positive duration shifts the interval forward; a
negative duration shifts it backward). Effectively, it does
end += duration
.
void shift(D)
(
D duration
) pure nothrow
if (__traits(compiles, end + duration));
Parameters
Name | Description |
---|---|
duration | The duration to shift the interval by. |
Example
auto interval1 = NegInfInterval!Date(Date(2012, 4, 5));
auto interval2 = NegInfInterval!Date(Date(2012, 4, 5));
interval1 .shift(dur!"days"(50));
assert(interval1 == NegInfInterval!Date(Date(2012, 5, 25)));
interval2 .shift(dur!"days"(-50));
assert(interval2 == NegInfInterval!Date( Date(2012, 2, 15)));
Function NegInfInterval.shift
Shifts the end
of this interval forward or backwards in time by
the given number of years and/or months (a positive number of years
and months shifts the interval forward; a negative number shifts it
backward). It adds the years the given years and months to end. It
effectively calls add!"years"()
and then add!"months"()
on end with the given number of years and months.
void shift(T)
(
T years,
T months = 0,
AllowDayOverflow allowOverflow = AllowDayOverflow .yes
)
if (isIntegral!T);
Parameters
Name | Description |
---|---|
years | The number of years to shift the interval by. |
months | The number of months to shift the interval by. |
allowOverflow | Whether the days should be allowed to overflow
on end , causing its month to increment. |
Throws
DateTimeException
if empty is true or
if the resulting interval would be invalid.
Example
auto interval1 = NegInfInterval!Date(Date(2012, 3, 1));
auto interval2 = NegInfInterval!Date(Date(2012, 3, 1));
interval1 .shift(2);
assert(interval1 == NegInfInterval!Date(Date(2014, 3, 1)));
interval2 .shift(-2);
assert(interval2 == NegInfInterval!Date(Date(2010, 3, 1)));