获取两个日期之间的数字 weekday/month 并增加日期

Get numbers weekday/month between two dates and increase dates

我正在开发一个 iOS 应用程序,我在其中从日历中选择日期和时间,并提供在该日期和时间添加事件的选项,如果他们想重复该事件,还提供重复选项对于特定的时间,例如 daily/weekly/monthly/yearly。而且我还要求日期直到事件应该重复以防止无限问题!当用户保存事件时,我会根据重复传递标志,例如(0-从不、1-每日、2-每周、3-每月、4-每年),并通过单个条目将所有内容保存到数据库中。

现在,当我从数据库中获取数据时,我正在检查该标志并根据该标志填充事件。

我每天都这样重复:

let calendar = NSCalendar.current
                let unitFlags = Set<Calendar.Component>([ .day])
                let dateComponents = calendar.dateComponents(unitFlags, from: date!, to: lastDate!)
                let dayCount = dateComponents.day
                print(dayCount!)

while date! < lastDate! {
                    date = Calendar.current.date(byAdding: .day, value: 1,  to: date!)!
                        print(date!)
                }

它工作正常。现在当我每周去一次并假设我选择的日期是 2018 年 11 月 23 日 但是当我重复它时 每周 我必须知道这个日期是哪一天。我还选择了日期 2019 年 1 月 21 日 作为 最后日期 。所以现在我想重复这个每周活动直到最后一个日期意味着如果所选日期的白天时间是 SUNDAY 那么我需要所有星期天到结束日期.

我怎样才能得到它或者我应该在这段代码中加入什么条件才能完成工作?

提前致谢!

如果您想通过添加天、月等从另一个日期获取日期,您不必担心闰年,因为 Calendar 计算闰年。

加一周

date = Calendar.current.date(byAdding: .day, value: 7,  to: date!)!

加一个月

date = Calendar.current.date(byAdding: .month, value: 1,  to: date)!

加一年

date = Calendar.current.date(byAdding: .year, value: 1,  to: date)!