code: def get_start_and_end_time(self, ref=None):
          now = time.localtime(ref)
          if self.syear == 0:
              self.syear = now.tm_year
          day_start = find_day_by_weekday_offset(self.syear, self.smon, self.swday, self.swday_offset)
          start_time = get_start_of_day(self.syear, self.smon, day_start)
          if self.eyear == 0:
              self.eyear = now.tm_year
          day_end = find_day_by_weekday_offset(self.eyear, self.emon, self.ewday, self.ewday_offset)
          end_time = get_end_of_day(self.eyear, self.emon, day_end)
          now_epoch = time.mktime(now)
          if start_time > end_time:
              if now_epoch > end_time:
                  day_end = find_day_by_weekday_offset(self.eyear + 1,
                                                       self.emon, self.ewday, self.ewday_offset)
                  end_time = get_end_of_day(self.eyear + 1, self.emon, day_end)
              else:
                  day_start = find_day_by_weekday_offset(self.syear - 1,
                                                         self.smon, self.swday, self.swday_offset)
                  start_time = get_start_of_day(self.syear - 1, self.smon, day_start)
          else:
              if now_epoch > end_time:
                  day_start = find_day_by_weekday_offset(self.syear + 1,
                                                         self.smon, self.swday, self.swday_offset)
                  start_time = get_start_of_day(self.syear + 1, self.smon, day_start)
                  day_end = find_day_by_weekday_offset(self.eyear + 1,
                                                       self.emon, self.ewday, self.ewday_offset)
                  end_time = get_end_of_day(self.eyear + 1, self.emon, day_end)
          return (start_time, end_time)