一周中给定日期的日期列表Swift

gam*_*mal 1 ios swift3

我需要获取一周中给定日期的日期列表。

例如:如果用户从选择器中选择随机日期,如2017-6-7,则需要获取并显示星期几。[2017-6-4、2017-6-5、2017-6-6、2017-6-7、2017-6-8、2017-6-9、2017-6-10]

我在互联网上找不到任何解决方案。

谢谢

D4t*_*aya 6

尝试这个:

let dateInWeek = Date()//7th June 2017

let calendar = Calendar.current
let dayOfWeek = calendar.component(.weekday, from: dateInWeek)
let weekdays = calendar.range(of: .weekday, in: .weekOfYear, for: dateInWeek)!
let days = (weekdays.lowerBound ..< weekdays.upperBound)
    .compactMap { calendar.date(byAdding: .day, value: $0 - dayOfWeek, to: dateInWeek) }

print(days)
Run Code Online (Sandbox Code Playgroud)

它会给你这个:

2017

6月4日(星期日)2017年6月5日2017年6月6日2017 年6月
7日2017 年6月
8日2017 年6月
9日2017 年6月
10日(星期六)


从星期一开始
上面是我的日历的默认行为,这就是为什么从星期日开始。
如果要从星期一开始,请执行以下更改:

let dayOfWeek = calendar.component(.weekday, from: dateInWeek) - 1
Run Code Online (Sandbox Code Playgroud)

这取决于您的日历所在的区域设置。