Obtenga semanas anteriores, actuales y siguientes, excluyendo sábado y domingo

Quiero mostrar fechas / días desdelunes aviernes ExcluyendoSabado domingo como se menciona en la imagen a continuación.

Mi escenario:

Cuando se carga la pantalla, debería aparecer la semana actual.En el botón anterior, haga clic en (DisplayedWeek - 1)En el botón Siguiente, haga clic en (DisplayedWeek + 1)

Mi trabajo,

Después de algunas investigaciones, esto es lo que he intentado.

        let calendar = Calendar.current

        let currentDate = calendar.startOfDay(for: Date())

        /* value =  0 for current,
           value =  1 for next,
           value = -1 for previous week.

        */
        let nextWeek:Date =  calendar.date(byAdding: .weekOfMonth, value: 1, to: currentDate)! as Date

        let dayOfWeek = calendar.component(.weekday, from: nextWeek)
        let weekdays = calendar.range(of: .weekday, in: .weekOfYear, for: nextWeek)!

        let days = (weekdays.lowerBound ..< weekdays.upperBound).flatMap {

            calendar.date(byAdding: .day, value: $0 - dayOfWeek, to: nextWeek)

        }.filter { !calendar.isDateInWeekend($0) }

        // Week Days from monday to friday
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd"

        for date in days {
            print(formatter.string(from: date))
        }

En mi caso si el día essábado odomingo debería mostrarse la próxima semana pero se muestra la misma semana.

Respuestas a la pregunta(1)

Su respuesta a la pregunta