С Swift 3 и iOS 10 самый простой способ сделать это - Calendar
s dateInterval(of:for:)
:
func monthInterval() -> DateInterval? {
let calendar = Calendar.current
guard let interval = calendar.dateInterval(of: .month, for: Date()) else { return nil }
let duration = interval.duration
// Subtract one second because dateInterval(of:for:)'s end date returns the beginning of the following month
return DateInterval(start: interval.start, duration: duration - 1)
}
guard let interval = monthInterval() else { return }
Затем вы можете использовать interval.start
и interval.end
, чтобы получить нужные вам даты.