我需要获取一周中给定日期的日期列表。
举个例子 :
如果用户从像 2017-6-7 这样的选择器中选择随机日期,
我需要获取并显示一周的日期。
[2017-6-4, 2017-6-5, 2017-6-6, 2017-6-7, 2017-6-8, 2017-6-9, 2017-6-10]
我在互联网上找不到任何解决方案。
谢谢
最佳答案
尝试这个:
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)
它会给你这个:
4 June 2017(Sunday)
5 June 2017
6 June 2017
7 June 2017
8 June 2017
9 June 2017
10 June 2017(Saturday)
从星期一开始
以上是我日历的默认行为,这就是它从星期日开始的原因。
如果您想从星期一开始,请进行以下更改:
let dayOfWeek = calendar.component(.weekday, from: dateInWeek) - 1
这取决于您的日历所在的语言环境。
关于ios - 一周中给定日期的日期列表 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44416831/