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

标签 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]

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

谢谢

最佳答案

尝试这个:

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/

相关文章:

ios - 以编程方式停止向 iPhone 发送短信

ios - 框架在自动生成的 swift 文件中不可见

ios - 崩溃 [UIViewAnimationState sendDelegateAnimationDidStop :finished:] after dispatch_main_queue_callback

ios - UIAlertController 的 UIAlertView show() 行为

ios - 在 View Controller 中添加 UICollectionview

ios - alamofire 在 swift 3 中上传相机和图库图像

ios - 如何调整正在打印在另一个图像上的图像的大小(swift3)

ios - Parse 是否自动从 Facebook 获取数据

random - 什么是Swift3(Xcode8 beta 1)中的随机种子等效项

ios - 如何在 Swift 的 Spritekit 中创建动态位​​置