'Add a datetime and a timedelta.'

def __add__(self, other):

    if (not isinstance(other, timedelta)):
        return NotImplemented
    delta = timedelta(self.toordinal(), hours=self._hour, minutes=self._minute, seconds=self._second, microseconds=self._microsecond)
    delta += other
    (hour, rem) = divmod(delta.seconds, 3600)
    (minute, second) = divmod(rem, 60)
    if (0 < delta.days <= _MAXORDINAL):
        return datetime.combine(date.fromordinal(delta.days), time(hour, minute, second, delta.microseconds, tzinfo=self._tzinfo))
    raise OverflowError('result    out    of    range')
