Definieren
func secondsToHoursMinutesSeconds (seconds : Int) -> (Int, Int, Int) {
return (seconds / 3600, (seconds % 3600) / 60, (seconds % 3600) % 60)
}
Verwenden
> secondsToHoursMinutesSeconds(27005)
(7,30,5)
oder
let (h,m,s) = secondsToHoursMinutesSeconds(27005)
Die obige Funktion verwendet Swift-Tupel, um drei Werte gleichzeitig zurückzugeben. Sie zerstören das Tupel mithilfe der let (var, ...)Syntax oder können bei Bedarf auf einzelne Tupelelemente zugreifen.
Wenn Sie es tatsächlich mit den Worten ausdrucken müssen Hours usw. Folgendes:
func printSecondsToHoursMinutesSeconds (seconds:Int) -> () {
let (h, m, s) = secondsToHoursMinutesSeconds (seconds)
print ("\(h) Hours, \(m) Minutes, \(s) Seconds")
}
Beachten Sie, dass die obige Implementierung von Argumenten secondsToHoursMinutesSeconds()funktioniert Int. Wenn Sie eine DoubleVersion wünschen, müssen Sie entscheiden, wie die Rückgabewerte lauten - könnten (Int, Int, Double)oder könnten (Double, Double, Double). Sie könnten etwas versuchen wie:
func secondsToHoursMinutesSeconds (seconds : Double) -> (Double, Double, Double) {
let (hr, minf) = modf (seconds / 3600)
let (min, secf) = modf (60 * minf)
return (hr, min, 60 * secf)
}
(seconds % 3600) % 60kann auf optimiert werdenseconds % 60. Sie müssen die Stunden nicht zuerst extrahieren.