Định nghĩa
func secondsToHoursMinutesSeconds (seconds : Int) -> (Int, Int, Int) {
return (seconds / 3600, (seconds % 3600) / 60, (seconds % 3600) % 60)
}
Sử dụng
> secondsToHoursMinutesSeconds(27005)
(7,30,5)
hoặc là
let (h,m,s) = secondsToHoursMinutesSeconds(27005)
Hàm trên sử dụng bộ dữ liệu Swift để trả về ba giá trị cùng một lúc. Bạn cấu trúc bộ dữ liệu bằng cách sử dụnglet (var, ...)
cú pháp hoặc có thể truy cập các thành viên bộ dữ liệu riêng lẻ nếu cần.
Nếu bạn thực sự cần in nó ra bằng các từ Hours
vv thì hãy sử dụng cái gì đó như thế này:
func printSecondsToHoursMinutesSeconds (seconds:Int) -> () {
let (h, m, s) = secondsToHoursMinutesSeconds (seconds)
print ("\(h) Hours, \(m) Minutes, \(s) Seconds")
}
Lưu ý rằng việc thực hiện các secondsToHoursMinutesSeconds()
công việc trên cho các Int
đối số. Nếu bạn muốn có một Double
phiên bản, bạn sẽ cần phải quyết định giá trị trả về là gì - có thể (Int, Int, Double)
hoặc có thể (Double, Double, Double)
. Bạn có thể thử một cái gì đó như:
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) % 60
có thể được tối ưu hóaseconds % 60
. Không cần phải trích xuất giờ đầu tiên.