0
我有一个功能,可根据用户首选项NSUserDefaults
将分钟转换为小数或HH:MM字符串。例如,90
分钟可以是1.5
或1:30
。将时间转换功能更改为Swift扩展
这里是我的功能:
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
斯威夫特扩展。我很难知道我需要重写以完成所有转换。
任何想法如何使这个扩展?
谢谢,这是有道理的。如何用'NSNumberFormatter'扩展名来看?我需要使用它,因为我将它传递给只接受“NSNumberFormatter”来更改图形标签的图形插件。 –
只需用'extension NSNumberFormatter'替换'extension Int'并且意识到'self'将会是'NSNumberFormatter'而不是'Int'。尝试一下,如果你遇到某些特定的问题,请提出另一个问题。 – par