परिभाषित करें
func secondsToHoursMinutesSeconds (seconds : Int) -> (Int, Int, Int) {
return (seconds / 3600, (seconds % 3600) / 60, (seconds % 3600) % 60)
}
उपयोग
> secondsToHoursMinutesSeconds(27005)
(7,30,5)
या
let (h,m,s) = secondsToHoursMinutesSeconds(27005)
उपरोक्त फ़ंक्शन एक बार में तीन मान वापस करने के लिए स्विफ्ट ट्यूपल्स का उपयोग करता है। आप 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)
}
(seconds % 3600) % 60
को अनुकूलित किया जा सकता हैseconds % 60
। पहले घंटे निकालने की जरूरत नहीं है।