如何通过在 swift 中通过特定年份来获取一年 [周六和周日] 的所有周末日期?



如何在 swift 中通过特定年份来获取所有周末日期 [周六和周日]?举个例子,如果我通过 2018 年,它将返回 [6/1/18]

您可以获取一年中的天数,使用 compactMap 遍历它们,检查是否每天都在周末,如果为正返回,否则返回 nil:

extension Date{
var year: Int {
return Calendar.current.component(.year, from: self)
}
var weekendsInSameYear: [Date] {
return Calendar.current.range(of: .day, in: .year, for: self)?.compactMap {
guard let date = DateComponents(calendar: .current, year: year, day: $0).date, Calendar.current.isDateInWeekend(date) else {
return nil
}
return date
} ?? []
}
}

let dates = Date().weekendsInSameYear
for date in dates {
print(date.description(with: .current))
}
//  "Saturday, January 6, 2018 at 12:00:00 AM Brasilia Summer Time"
//  "Sunday, January 7, 2018 at 12:00:00 AM Brasilia Summer Time"
//  "..."
//  "Saturday, December 29, 2018 at 12:00:00 AM Brasilia Summer Time"
//  "Sunday, December 30, 2018 at 12:00:00 AM Brasilia Summer Time"

相关内容

最新更新