2016-02-02 109 views
0

我將數字存儲在MySQL數據庫中作爲雙精度,因此我可以獲得最小值,最大值和總和。將十進制轉換爲小時:分鐘:秒

我有一個十進制數1.66777777778它等於01:40:04但是我希望能夠將這個小數轉換爲小時:分鐘:在Swift秒,所以我可以顯示的值爲01:40:04但是我不知道如何。

我已經做了一些搜索,但大多數結果是計算器沒有解釋。

我有這個功能將轉換爲十進制:

func timeToHour(hour: String, minute:String, second:String) -> Double 
{ 
    var hourSource = 0.00 
    if hour == "" 
    { 
     hourSource = 0.00 
    } 
    else 
    { 
     hourSource = Double(hour)! 
    } 
    let minuteSource = Double(minute)! 
    let secondSource = Double(second)! 

    let timeDecimal: Double = hourSource + (minuteSource/60) + (secondSource/3600) 
    return timeDecimal 
} 

但需要一個回去的其他方式。

感謝

回答

2

嘗試:

func hourToString(hour:Double) -> String { 
    let hours = Int(floor(hour)) 
    let mins = Int(floor(hour * 60) % 60) 
    let secs = Int(floor(hour * 3600) % 60) 

    return String(format:"%d:%02d:%02d", hours, mins, secs) 
} 

基本上打破每個組件出並連接它們放在一起。

+0

輝煌。謝謝:) – puks1978

+0

如果你想四捨五入到最接近的分鐘,這個解決方案會有什麼不同? –

+0

沒關係。看起來你可以將分鐘換成「圓形」。 –

相關問題