def get_start_and_end_time(self, ref=None):
        """Specific function to get start time and end time for WeekDayDaterange

        :param ref: time in seconds
        :type ref: int
        :return: tuple with start and end time
        :rtype: tuple (int, int)
        """
        now = time.localtime(ref)

        # If no year, it's our year
        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)

        # Same for end year
        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)

        # Maybe end_time is before start. So look for the
        # next month
        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)
        # But maybe we look not enought far. We should add a month
        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
            # First start
            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)
            # Then end
            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)
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 )
Specific function to get start time and end time for WeekDayDaterange

        :param ref: time in seconds
        :type ref: int
        :return: tuple with start and end time
        :rtype: tuple (int, int)