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