Author: Brian Kearns <bdkea...@gmail.com> Branch: Changeset: r80925:11243828bb74 Date: 2015-11-24 20:44 -0500 http://bitbucket.org/pypy/pypy/changeset/11243828bb74/
Log: simplify date +- timedelta diff --git a/lib_pypy/datetime.py b/lib_pypy/datetime.py --- a/lib_pypy/datetime.py +++ b/lib_pypy/datetime.py @@ -905,25 +905,29 @@ # Computations + def _add_timedelta(self, other, factor): + y, m, d = _normalize_date( + self._year, + self._month, + self._day + other.days * factor) + return date(y, m, d) + def __add__(self, other): "Add a date to a timedelta." if isinstance(other, timedelta): - year, month, day = _normalize_date(self._year, - self._month, - self._day + other.days) - return date(year, month, day) + return self._add_timedelta(other, 1) return NotImplemented __radd__ = __add__ def __sub__(self, other): """Subtract two dates, or a date and a timedelta.""" - if isinstance(other, timedelta): - return self + timedelta._create(-other.days, 0, 0, False) if isinstance(other, date): days1 = self.toordinal() days2 = other.toordinal() return timedelta._create(days1 - days2, 0, 0, False) + if isinstance(other, timedelta): + return self._add_timedelta(other, -1) return NotImplemented def weekday(self): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit