我需要获取一周中给定日期的日期列表。
例如:如果用户从选择器中选择随机日期,如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)
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)
这取决于您的日历所在的区域设置。
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |