我需要将十进制小时转换为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但是不确定实现这个的公式而不分割结果并多次执行乘法。
感谢任何帮助。
答案 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)
}
}
注意:我很快就会将其转变为通用功能