Это вычисляет расстояние между двумя датами, затем отображает часы и минуты. Он игнорирует секунды, но если вам нужны также секунды, вы сможете следовать той же схеме, что и я.
let firstDate = picker1.date
let secondDate = picker2.date
let timeInBetween = secondDate.timeIntervalSince(secondDate) //this is in seconds
var hours = 0
var minutes = 0
var seconds = timeInBetween
while seconds >= 3600 {
seconds -= 3600
hours += 1
}
while seconds >= 60 {
seconds -= 60
minutes += 1
}
lable1.text = "\(hours) hour\(hours == 1 ? "" : "s"), \(minutes) minute\(minutes == 1 ? "" : "s")."
РЕДАКТИРОВАТЬ: Хотя это решение работает, я предлагаю всем, кто ищет решение, вместо этого использует решение @ Gereon. Однако вам нужно будет обновить текст метки, и мой способ сделать это все еще является лучшим вариантом.