计算平均速度

时间:2016-01-06 02:30:10

标签: swift

我需要将十进制小时转换为hh:mm:ss以显示行走应用的平均速度。

我已将时间转换为十进制,我已将步速计算为十进制,但我不确定如何将其转换为时间。

我的timeDecimal是:

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

这给了我一些像0.4375

的东西
0 = 0
.4375 * 60 = 26.25
.25 = * 60 = 15

我知道时间应该是00:26:15但是不确定实现这个的公式而不分割结果并多次执行乘法。

感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

let formatter = NSDateComponentsFormatter()
formatter.allowedUnits = [ .Hour, .Minute, .Second ]
formatter.unitsStyle = .Positional
formatter.zeroFormattingBehavior = .Pad
let string = formatter.stringFromTimeInterval(0.4375 * 3600)!

结果:0:26:15

答案 1 :(得分:0)

尝试

var mytime = timeDecimal * 60
var minutes = floor(mytime)
var seconds = (mytime - minutes) * 60

答案 2 :(得分:0)

func timeStringFrom(time time: Int) -> String {

    let HoursLeft = time/3600
    let MinutesLeft = (time%3600)/60
    let SecondsLeft = (((time%3600)%60)%60)

    if HoursLeft == 0 {
        return String(format:"%.2d:%.2d", MinutesLeft, SecondsLeft)
    } else {
        return String(format:"%2d:%.2d:%.2d", HoursLeft, MinutesLeft, SecondsLeft)
    }
}

注意:我很快就会将其转变为通用功能