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 oudomingo ele deve ser exibido na próxima semana, mas será exibido na mesma semana.