背景
我正在制作一个有闹钟的应用程序,我需要显示到下一个闹钟的剩余时间。
问题
如何获取选定日期的数组?
示例
用户选择了 MO TU WE TH FR SA SU 和时间 07:30。现在我需要获取这 7 天的日期,时间为 07:30。它应该适用于年份和月份的变化。例如,“MO TU WE TH”可以是 2018 年,但 FR SA SU 可以是 2019 年。
此外,我需要一个选项来创建日期,不是从所有工作日,而是从几个工作日,例如仅针对“TU WE SA”
您希望用户如何选择工作日?
最近我正在开发一个与日历相关的应用程序,我创建了这个函数来获取当天的工作日。
func getWeek(date:Date) -> [Date]? {
var dateComponents = Calendar(identifier: .gregorian).dateComponents([.yearForWeekOfYear, .weekOfYear], from: date)
dateComponents.timeZone = TimeZone.current
let startOfWeek = Calendar(identifier: .gregorian).date(from: dateComponents)!
let startOfWeekNoon = Calendar(identifier: .gregorian).date(bySettingHour: 0, minute: 0, second: 0, of: startOfWeek)!
let weekDays = (0...6).map { Calendar(identifier: .gregorian).date(byAdding: .day, value: $0, to: startOfWeekNoon)! }
return weekDays
}