def _add_delta(self, delta): if isinstance(delta, (Tick, timedelta)): inc = offsets._delta_to_microseconds(delta) new_values = (self.asi8 + inc).view("M8[us]") else: new_values = self.astype("O") + delta return DatetimeIndex(new_values, tz=self.tz, freq="infer")
def _get_range_edges(axis, begin, end, offset, closed='left', base=0): from pandas.tseries.offsets import Tick, _delta_to_microseconds if isinstance(offset, basestring): offset = to_offset(offset) if not isinstance(offset, DateOffset): raise ValueError("Rule not a recognized offset") if isinstance(offset, Tick): day_micros = _delta_to_microseconds(timedelta(1)) # #1165 if ((day_micros % offset.micros) == 0 and begin is None and end is None): return _adjust_dates_anchored(axis[0], axis[-1], offset, closed=closed, base=base) if begin is None: if closed == 'left': first = Timestamp(offset.rollback(axis[0])) else: first = Timestamp(axis[0] - offset) else: first = Timestamp(offset.rollback(begin)) if end is None: last = Timestamp(axis[-1] + offset) else: last = Timestamp(offset.rollforward(end)) return first, last