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

Swift 将十进制转换为小时:分钟:秒,swift,Swift,我在MySQL数据库中以双倍的形式存储数字,这样我可以得到最小值、最大值和总和 我有一个十进制数1.66778,等于01:40:04,但是我想能够将这个十进制数转换为小时:分钟:秒,以Swift格式,这样我就可以将值显示为01:40:04,但是我不知道如何转换 我做了一些搜索,但大多数结果都是没有解释的计算器 我有一个转换为十进制的函数: func timeToHour(hour: String, minute:String, second:String) -> Double {

我在MySQL数据库中以双倍的形式存储数字,这样我可以得到最小值、最大值和总和

我有一个十进制数1.66778,等于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
}
但我们需要一个从另一个方向回去

谢谢

试试:

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)
}
基本上,将每个组件分解并连接在一起。

尝试:

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

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

。谢谢:)如果你想四舍五入到最近的一分钟,这个解决方案会有什么不同?没关系。看起来你可以把
楼层
改成
分钟。太棒了。谢谢:)如果你想四舍五入到最近的一分钟,这个解决方案会有什么不同?没关系。看起来您可以将
楼层
改为
圆形
几分钟。