Skip to content

Instantly share code, notes, and snippets.

@bleft
Last active November 8, 2016 22:11
Show Gist options
  • Save bleft/79868fd181d9d316fc93e9dd645f6df9 to your computer and use it in GitHub Desktop.
Save bleft/79868fd181d9d316fc93e9dd645f6df9 to your computer and use it in GitHub Desktop.
extends TimeInterval with durationString that returns a human readable duration in decimal or time format (HH:MM:SS)
extension TimeInterval {
func durationString(_ decimal: Bool) -> String {
if decimal {
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 2
formatter.maximumFractionDigits = 2
formatter.minimumIntegerDigits = 1
let a = self / 3600
return formatter.string(from: NSNumber(value: a))! + " h"
} else {
let formatter = NumberFormatter()
formatter.minimumIntegerDigits = 2
formatter.maximumIntegerDigits = 2
let ti = Int(self)
let seconds = ti % 60
let minutes = (ti / 60) % 60
let hours = (ti / 3600)
return "\(formatter.string(from: NSNumber(value: hours))!):\(formatter.string(from: NSNumber(value: minutes))!):\(formatter.string(from: NSNumber(value: seconds))!)"
}
}
var dateString : String {
if self > 0 {
let date = Date(timeIntervalSince1970: self)
let formatter = DateFormatter()
formatter.timeStyle = .short
formatter.dateStyle = .short
return formatter.string(from: date)
} else {
return "---"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment