docs: def roll_qtrday(other, n, month, day_option, modby=3):
      """Possibly increment or decrement the number of periods to shift
      based on rollforward/rollbackward conventions.
  
      Parameters
      ----------
      other : cftime.datetime
      n : number of periods to increment, before adjusting for rolling
      month : int reference month giving the first month of the year
      day_option : 'start', 'end'
          The convention to use in finding the day in a given month against
          which to compare for rollforward/rollbackward decisions.
      modby : int 3 for quarters, 12 for years
  
      Returns
      -------
      n : int number of periods to increment
  
      See Also
      --------
      _get_day_of_month : Find the day in a month provided an offset.
      """
  
      months_since = other.month % modby - month % modby
  
      if n > 0:
          if months_since < 0 or (
                  months_since == 0 and
                  other.day < _get_day_of_month(other, day_option)):
              # pretend to roll back if on same month but
              # before compare_day
              n -= 1
      else:
          if months_since > 0 or (
                  months_since == 0 and
                  other.day > _get_day_of_month(other, day_option)):
              # make sure to roll forward, so negate
              n += 1
      return n