def add_days_to_selection(self, days):
        if not days:
            return
        style = self.on_mixed_select
        new_list = list(self.selected_days)

        if style == 'toggle':
            for day in days:
                if self.allow_future or day <= self.today:
                    if day in new_list:
                        new_list.remove(day)
                    else:
                        new_list.append(day)

        else:
            already_selected = len([day for day in days
                                    if day in new_list])

            if style == 'on' or already_selected == 0:
                add_items = True

            elif style == 'off' or already_selected == len(days):
                add_items = False

            elif (self.on_mixed_select == 'max_change' and
                  already_selected <= (len(days) / 2.0)):
                add_items = True

            elif (self.on_mixed_select == 'min_change' and
                  already_selected > (len(days) / 2.0)):
                add_items = True

            else:
                # Cases where max_change is off or min_change off.
                add_items = False

            for day in days:
                # Skip if we don't allow future, and it's a future day.
                if self.allow_future or day <= self.today:
                    if add_items and day not in new_list:
                        new_list.append(day)
                    elif not add_items and day in new_list:
                        new_list.remove(day)

        self.selected_days = new_list
        # Link the list back to the model to make a Traits List change event.
        self.editor.value = new_list
        return
Add a list of days to the selection, using a specified style.
dataset/ETHPy150Open enthought/traitsui/traitsui/wx/date_editor.py/MultiCalendarCtrl.add_days_to_selection