Основной ошибкой является формат даты: mm
- минуты, MM
- месяцы.
Тем не менее Calendar
может вычислить разницу дат гораздо надежнее, чем ужасная 86400 математика
let startMon = 05
let startMday = 26
let startYear = 2016
let startDateStr = "\(startYear)/\(startMon)/\(startMday)"
let dateFormatter = DateFormatter()
let currentDate = Date()
dateFormatter.locale = Locale(identifier : "en_US_POSIX")
dateFormatter.dateFormat = "yyyy/MM/dd"
let startDateFormatted = dateFormatter.date(from: startDateStr)
let difference = Calendar.current.dateComponents([.year, .month, .day], from: startDateFormatted!, to: Date())
print(difference)
Или с DateComponents
let startMon = 05
let startMday = 26
let startYear = 2016
let startComponents = DateComponents(year: startYear, month: startMon, day: startMday)
let nowComponents = Calendar.current.dateComponents([.year, .month, .day], from: Date())
let difference = Calendar.current.dateComponents([.year, .month, .day], from: startComponents, to: nowComponents)
print(difference)