code: def _shift_date(self, direction, unit, *args):
          
          this_module = sys.modules[__name__]
  
          num_shifts = 1
          if len(args) > 0:
              num_shifts = int(args[0])
  
          if unit in ['monday', 'tuesday', 'wednesday', 'thursday', 'friday',
                      'saturday', 'sunday']:
              shift_func = move_datetime_namedday
              dt = shift_func(self._dt, direction, unit)
              if num_shifts > 1:
                  for n in range(num_shifts - 1):
                      dt = shift_func(dt, direction, unit)
          else:
              shift_func = getattr(this_module, 'move_datetime_%s' % unit)
              dt = shift_func(self._dt, direction, num_shifts)
  
          return Delorean(datetime=dt.replace(tzinfo=None), timezone=self.timezone)
docs: Shift datetime in `direction` in _VALID_SHIFT_DIRECTIONS and by some
          unit in _VALID_SHIFTS and shift that amount by some multiple,
          defined by by args[0] if it exists