Obter semanas anteriores, atuais e próximas, excluindo sábado e domingo

Quero exibir datas / dias deSegunda-feira paraSexta-feira excluindoSábado domingo como mencionado na imagem abaixo.

Meu cenário:

Quando a tela carrega, a semana atual deve ser exibida.No botão anterior, clique em (Semana exibida - 1)No botão Avançar, clique em (DisplayedWeek + 1)

Meu trabalho,

Depois de algumas pesquisas, é isso que eu tentei.

        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))
        }

No meu caso, se o dia forsábado&nbsp;oudomingo&nbsp;ele deve ser exibido na próxima semana, mas será exibido na mesma semana.