将十进制转换为小时:分钟:秒

时间:2016-02-02 23:18:24

标签: swift

我将数据存储在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
}

但需要一个回到另一个方向。

由于

1 个答案:

答案 0 :(得分:4)

尝试:

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)
}

基本上将每个组件分解并将它们连接在一起。