我想将小时/分钟/秒转换为整数
7小时30分钟5秒
答案 0 :(得分:0)
您可以使用 split() :
import Foundation
func getSecondsFromString(timeString: String) -> (Int) {
let timeParts = timeString.replacingOccurrences(of: "[^0-9]", with: " ", options: [.regularExpression])
.split(separator: " ")
.map{Int($0)!}
return timeParts[0] * 3600 + timeParts[1] * 60 + timeParts[2]
}
print(getSecondsFromString(timeString: "7 Hours 30 Minutes 5 Seconds"))
输出:
27005
答案 1 :(得分:0)
如果您使用timeIntervalSince
以秒为单位计算了两个日期之间的时差,则可以直接将其转换为小时数,作为一次
let hours: Double = elapsedTime / 3600 // 7.501388...
在您的示例中为7.5,然后可以将其与小时费率相乘。如果您出于某些原因只想使用完整时间,则可以四舍五入到最接近的完整时间
let fullHours = round(hours) // 8.0
或者如果您想截断分钟并保留小时,则可以从头开始进行整数除法
let hours: Int = elapsedTime / 3600 // 7