Set week day.
    New date will be greater or equal than input date.
    :param val: datetime or date
    :type val: datetime.datetime | datetime.date
    :param week_day: Week day to set
    :type week_day: int
    :param iso: week_day in ISO format, or not
    :type iso: bool
    :return: datetime.datetime | datetime.date

def set_next_week_day(val, week_day, iso=False):
    """
    Set week day.
    New date will be greater or equal than input date.
    :param val: datetime or date
    :type val: datetime.datetime | datetime.date
    :param week_day: Week day to set
    :type week_day: int
    :param iso: week_day in ISO format, or not
    :type iso: bool
    :return: datetime.datetime | datetime.date
    """
    return _set_week_day(val, week_day,
                         val.isoweekday() if iso else val.weekday(), sign=1)