Define
func secondsToHoursMinutesSeconds(_ seconds: Int) -> (Int, Int, Int) {
return (seconds / 3600, (seconds % 3600) / 60, (seconds % 3600) % 60)
}
Use
> secondsToHoursMinutesSeconds(27005)
(7,30,5)
or
let (h,m,s) = secondsToHoursMinutesSeconds(27005)
上面的函数使用 Swift 元组一次返回三个值。您可以使用以下方法解构元组let (var, ...)
语法或可以访问单个元组成员(如果需要)。
如果您确实需要用以下文字打印出来Hours
等等然后使用这样的东西:
func printSecondsToHoursMinutesSeconds(_ seconds: Int) {
let (h, m, s) = secondsToHoursMinutesSeconds(seconds)
print ("\(h) Hours, \(m) Minutes, \(s) Seconds")
}
注意上面的实现secondsToHoursMinutesSeconds()
效劳于Int
论据。如果你想要一个Double
您需要决定返回值是什么的版本 - 可能是(Int, Int, Double)
或者可能是(Double, Double, Double)
。你可以尝试这样的事情:
func secondsToHoursMinutesSeconds(seconds: Double) -> (Double, Double, Double) {
let (hr, minf) = modf(seconds / 3600)
let (min, secf) = modf(60 * minf)
return (hr, min, 60 * secf)
}