I have a function that converts minutes to either a decimal or a HH:MM string based on a user preference in NSUserDefaults
.
For example, 90
minutes would be either 1.5
or 1:30
.
Here's my function:
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)
}
}
This works great, but I'm wondering if this can be converted to an NSNumberFormatter
Swift extension somehow. I'm having trouble knowing what I need to override in order to do all the converting.
Any idea how I can make this an extension?