Menetapkan
func secondsToHoursMinutesSeconds (seconds : Int) -> (Int, Int, Int) {
return (seconds / 3600, (seconds % 3600) / 60, (seconds % 3600) % 60)
}
Menggunakan
> secondsToHoursMinutesSeconds(27005)
(7,30,5)
atau
let (h,m,s) = secondsToHoursMinutesSeconds(27005)
Fungsi di atas menggunakan tuple Swift untuk mengembalikan tiga nilai sekaligus. Anda merusak tuple menggunakanlet (var, ...)
sintaks atau dapat mengakses setiap anggota tupel, jika perlu.
Jika Anda benar-benar perlu mencetaknya dengan kata-kata Hours
dll, maka gunakan sesuatu seperti ini:
func printSecondsToHoursMinutesSeconds (seconds:Int) -> () {
let (h, m, s) = secondsToHoursMinutesSeconds (seconds)
print ("\(h) Hours, \(m) Minutes, \(s) Seconds")
}
Perhatikan bahwa implementasi secondsToHoursMinutesSeconds()
karya di atas untuk Int
argumen. Jika Anda menginginkan Double
versi, Anda harus memutuskan apa nilai pengembaliannya - bisa (Int, Int, Double)
atau bisa jadi (Double, Double, Double)
. Anda dapat mencoba sesuatu seperti:
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
dapat dioptimalkan untukseconds % 60
. Tidak perlu mengekstrak jam pertama.