In Swift 3 I am not able to change the day by adding minutes to a day. The time changes like its supposed to but the day does not change, for example adding 180 minutes to 31.10.2016 2200 leads to 31.10.2016 0100 and not to 01.11.2016 0100.
func getDayByAddingMinutes(date: String, minutes: Int) -> String{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy hh:mm"
let calendar = Calendar.current
let akt = (dateFormatter.date(from: date)! as Date?)!
let calculatedDate = calendar.date(byAdding: .minute, value: minutes, to: akt )
print("\(akt) + \(minutes)")
let dateFormatter2 = DateFormatter()
dateFormatter2.dateFormat = "dd.MM.yyyy"
let newDate = dateFormatter2.string(from: calculatedDate!);
print("\(date) + \(newDate)")
return "\(newDate)";
}
let minutes = 1000
let calendar = Calendar.current
let day = "23.01.2017"
let time = "21:15"
let inFormatter = DateFormatter()
inFormatter.locale = Locale(identifier: "en_US_POSIX")
inFormatter.dateFormat = "dd.MM.yyyy HH:mm"
let d2 = inFormatter.date(from: "\(day) \(time)")!
let calculated = calendar.date(byAdding: .minute, value: minutes, to: d2)
let outFormatter = DateFormatter()
outFormatter.locale = Locale(identifier: "en_US_POSIX")
outFormatter.dateFormat = "dd.MM.yyyy"
var date = outFormatter.string(from: calculated!)