code: def replace(self, year=None, month=None, day=None, hour=None,
                  minute=None, second=None, microsecond=None, tzinfo=True):
          
          if year is None:
              year = self.year
          if month is None:
              month = self.month
          if day is None:
              day = self.day
          if hour is None:
              hour = self.hour
          if minute is None:
              minute = self.minute
          if second is None:
              second = self.second
          if microsecond is None:
              microsecond = self.microsecond
          if tzinfo is True:
              tzinfo = self.tzinfo
          _check_date_fields(year, month, day)
          _check_time_fields(hour, minute, second, microsecond)
          _check_tzinfo_arg(tzinfo)
          return datetime(year, month, day, hour, minute, second,
                            microsecond, tzinfo)
docs: Return a new datetime with new values for the specified fields.