Вы можете добавить расширение к NSDate, а затем сделать все виды день/месяц дополнение
Этот метод можно использовать для добавления 7 дней к текущей дате ...
func dateByAddingDays(daysToAdd: Int)-> NSDate {
let dateComponents = NSDateComponents()
dateComponents.day = daysToAdd
let newDate = NSCalendar.currentCalendar().dateByAddingComponents(dateComponents, toDate: self, options: .MatchFirst)
return newDate!
}
Этот метод добавления месяцев текущей даты
func dateByAddingMonths(monthsToAdd: Int)-> NSDate {
let dateComponents = NSDateComponents()
dateComponents.month = monthsToAdd
let newDate = NSCalendar.currentCalendar().dateByAddingComponents(dateComponents, toDate: self, options: .MatchFirst)
return newDate!
}
Затем вам нужно проверить эту дату, созданную и посмотреть, если это его другой месяц, чем тот, который хранится ..
func compareMonths(newDate:NSDate)-> Bool {
let today = NSDate()
let todayPlusSeven = today.dateByAddingDays(7)
return todayPlusSeven.isNextMonth(storedDate)
}
Используя этот метод, чтобы проверить, месяцы 2 даты одинаковы
func isNextMonth(storedDate: NSDate)-> Bool {
return isSameMonthAsDate(storedDate.dateByAddingMonth(1))
}
func isSameMonthAsDate(compareDate: NSDate)-> Bool {
let comp1 = NSCalendar.currentCalendar().components([NSCalendarUnit.Year, NSCalendarUnit.Month], fromDate: self)
let comp2 = NSCalendar.currentCalendar().components([NSCalendarUnit.Year, NSCalendarUnit.Month], fromDate: compareDate)
return ((comp1.month == comp2.month) && (comp1.year == comp2.year))
}
Старики, но все еще хорошие, это страница помощников Дании из github Эрики Садун. here Все они в Obj-c, но могут быть легко преобразованы в быстродействующие. Я все еще ссылаюсь на него, когда мне нужна помощь, давая математическую дату.
благодарите человека, оцените ваше усилие :) –
Конечно, FYI Я сделал это со своей головы, поэтому может потребоваться некоторая настройка – bolnad