def _rollback_to_year(self, other):
num_qtrs = <NUM_LIT:0><EOL>norm = Timestamp(other).tz_localize(None)<EOL>start = self._offset.rollback(norm)<EOL>if start < norm:<EOL><INDENT>qtr_lens = self.get_weeks(norm)<EOL>end = liboffsets.shift_day(start, days=<NUM_LIT:7> * sum(qtr_lens))<EOL>assert self._offset.onOffset(end), (start, end, qtr_lens)<EOL>tdelta = norm - start<EOL>for qlen in qtr_lens:<EOL><INDENT>if qlen * <NUM_LIT:7> <= tdelta.days:<EOL><INDENT>num_qtrs += <NUM_LIT:1><EOL>tdelta -= Timedelta(days=qlen * <NUM_LIT:7>)<EOL><DEDENT>else:<EOL><INDENT>break<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>tdelta = Timedelta(<NUM_LIT:0>)<EOL><DEDENT>return start, num_qtrs, tdelta<EOL>
Roll `other` back to the most recent date that was on a fiscal year
end.

Return the date of that year-end, the number of full quarters
elapsed between that year-end and other, and the remaining Timedelta
since the most recent quarter-end.

Parameters
----------
other : datetime or Timestamp

Returns
-------
tuple of
prev_year_end : Timestamp giving most recent fiscal year end
num_qtrs : int
tdelta : Timedelta