Swift - 创建工作日数组

问题描述 投票:0回答:2

背景

我正在制作一个有闹钟的应用程序,我需要显示到下一个闹钟的剩余时间。

问题

如何获取选定日期的数组?

示例

用户选择了 MO TU WE TH FR SA SU 和时间 07:30。现在我需要获取这 7 天的日期,时间为 07:30。它应该适用于年份和月份的变化。例如,“MO TU WE TH”可以是 2018 年,但 FR SA SU 可以是 2019 年。

此外,我需要一个选项来创建日期,不是从所有工作日,而是从几个工作日,例如仅针对“TU WE SA”

arrays swift date nsdate nscalendar
2个回答
0
投票

您希望用户如何选择工作日?


0
投票

最近我正在开发一个与日历相关的应用程序,我创建了这个函数来获取当天的工作日。

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
}
© www.soinside.com 2019 - 2024. All rights reserved.