我想從顯示日期/天星期一到週五排除週六/週日如下圖中提到的。獲取前,當前和未來幾周不包括週六和週日
我的情景:
- 當屏幕加載當前周應顯示。
- 在以前的按鈕點擊(DisplayedWeek - 1)
- 在單擊下一步按鈕(DisplayedWeek + 1)。
我的工作,
經過一番研究,這是我都試過了。
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))
}
在我的情況下,如果這一天是週六或週日它應顯示下週,但它顯示了同一個星期。
什麼「時區有關的問題」你有沒有?請顯示清楚顯示問題的[mcve]。 –
@MartinR添加了一些細節 – Maddy