【发布时间】:2017-10-20 21:10:45
【问题描述】:
我正在构建一个 Swift 习惯养成应用程序。在某个时刻,用户选择他们想要养成的习惯的持续时间(以天为单位)。用户还可以选择他们想在一周中的哪几天练习它(周日、周一、周二等)。开始日期是他们养成习惯的那一天。
我目前有开始日期和结束日期(基于用户选择的天数)。但是,在该日期范围内,我需要提取用户选择的特定日期的日期。
我的想法是,对于时间间隔(startDate、endDate)内的每个工作日值“x”,返回日历日期。但是,我尝试创建一个 DateInterval,但我无法对其进行迭代,因为它不符合协议“序列”。
有没有一种有效的方法来迭代这个日期范围并提取这些其他日期?有没有更好的方法我还没有想到?
下面是我当前的日期起始代码:
var date = Date()
var duration = 10
let calendar = Calendar.current
let dateEnding = Calendar.current.date(byAdding: .day, value: duration, to: date as Date)!
//Returns a number representing day of the week. i.e. 1 = Sunday
let weekDay = calendar.component(.weekday, from: date)
//Initializing a time interval, based on user selected duration and start date
let timeInterval = DateInterval.init(start: date, end: dateEnding)
感谢您的帮助...
【问题讨论】: