【发布时间】:2016-11-10 04:54:40
【问题描述】:
我有一个函数可以根据NSUserDefaults 中的用户偏好将分钟转换为小数或 HH:MM 字符串。
例如,90 分钟可以是1.5 或1:30。
这是我的功能:
func decimalOrHHMM(value:Int) -> String{
let totalMinutes = Double(value)
let defaults = UserDefaults.standard
if defaults.string(forKey: "displayTotalsAs") == "hhmm"{
//HH:MM
let hours = floor(totalMinutes/60)
let minutes = totalMinutes.truncatingRemainder(dividingBy: 60) //This gives us the remainder
let hrs = String(format: "%.0f", hours) //Remove tenths place
var mins = ""
if minutes < 10{
//Prepend 0
mins = String(format: "0%.0f", minutes)
}else{
mins = String(format: "%.0f", minutes)
}
return "\(hrs):\(mins)"
}else{
//Decimal
return String(format: "%.1f", totalMinutes/60)
}
}
这很好用,但我想知道它是否可以以某种方式转换为NSNumberFormatter Swift 扩展。我不知道我需要覆盖什么才能进行所有转换。
知道如何将其作为扩展程序吗?
【问题讨论】:
标签: swift swift3 nsnumberformatter swift-extensions