code: def rollback(self, dt):
          
          if not self.onOffset(dt):
              businesshours = self._get_business_hours_by_sec
              if self.n >= 0:
                  dt = self._prev_opening_time(
                      dt) + timedelta(seconds=businesshours)
              else:
                  dt = self._next_opening_time(
                      dt) + timedelta(seconds=businesshours)
          return dt
docs: Roll provided date backward to next offset only if not on offset.