Дни между 2 NSDates в календарном году быстро

Я создаю приложение напоминания о дне рождения. Я хочу, чтобы пользователь мог видеть, сколько дней осталось до следующего дня рождения.

Допустим, у меня естьNSDate() = 2015-06-30 07:21:47 +0000

ИNSDate на день рождения =1985-08-29 12:00:00 +0000

Как бы я узнал количество дней до следующего дня рождения? Я использовал что-то вродеэтот который дает отрицательное количество дней с момента фактического начала даты (в тысячах с датами рождения). Затем с этим я добавлю 365 к числовой разнице, пока она не станет положительной, но она все равно возвращает ошибочное число. Я предполагаю из-за високосных лет или что-то.

Есть ли способ для этого я могу реализовать? Каким-то образом выровнять компоненты года, чтобы они всегда сравнивались со следующим днем ​​рождения, а не с первоначальной датой рождения?

Редактировать:

Вот функция, которую я использую:

func daysBetween(date1: NSDate, date2: NSDate) -> Int {

    var calendar: NSCalendar = NSCalendar.currentCalendar()

    let date1 = calendar.startOfDayForDate(date1)
    let date2 = calendar.startOfDayForDate(date2)

    let flags = NSCalendarUnit.CalendarUnitDay
    let components = calendar.components(flags, fromDate: date1, toDate: date2, options: nil)

    return components.day
}

С примерами дат, которые я разместил, я бы использовал это так:

// sampleDate = 1985-08-29 12:00:00 +0000
daysBetween(sampleDate, date2: NSDate())
// --> 10897

Положительное или отрицательное число исчисляется тысячами. Я рассчитываю выровнять это количество дней до следующего календарного дня рождения.

Ответы на вопрос(2)

Ваш ответ на вопрос