我当前以秒为单位存储时间(例如 70.149 秒)。我如何轻松获得分钟和秒?我的意思是 70.149 秒是 1 分 10 秒。我怎样才能快速轻松地做到这一点?
这是我想做的一个例子。
let time:Double = 70.149 //This can be any value
let mins:Int = time.minutes //In this case it would be 1
let secs:Int = time.seconds //And this would be 10
我如何使用 Swift 2 OS X(不是 iOS)来做到这一点
类似这样的:
let temp:Int = Int(time + 0.5) // Rounding
let mins:Int = temp / 60
let secs:Int = temp % 60
这将是一个相对简单的解决方案。 值得注意的是,这会截断部分秒。 如果您想对此进行控制,则必须在第三行使用浮点数学,并在转换为
trunc()
之前对结果调用 ceil()
/floor()
/Int
。
let time:Double = 70.149 //This can be any value
let mins:Int = Int(time) / 60 //In this case it would be 1
let secs:Int = Int(time - Double(mins * 60)) //And this would be 10
斯威夫特5
日期组件格式化程序在向用户显示人类可读的文本时具有很多优势。这个函数需要双倍的时间。
func humanReadable(time:Double) -> String {
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute, .second]
formatter.unitsStyle = .full
if let str = formatter.string(from: time) {
return str
}
return "" // empty string if number fails
}
// will output '1 minute, 10 seconds' for 70.149