You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
LeCountdown/LeCountdown/Utils/TimeInterval+Extensions.swift

58 lines
1.5 KiB

//
// TimeInterval+Extensions.swift
// LeCountdown
//
// Created by Laurent Morvillier on 20/01/2023.
//
import Foundation
extension TimeInterval {
var hourMinuteSecond: String {
let h = self.hour
if h > 0 {
return String(format:"%d:%02d:%02d", hour, minute, second)
} else {
return self.minuteSecond
}
}
var hourMinuteSecondHS: String {
let h = self.hour
if h > 0 {
return String(format:"%d:%02d:%02d", hour, minute, second)
} else {
return String(format:"%02d:%02d.%02d", minute, second, hundredth)
}
}
var hourMinuteSecondMS: String {
String(format:"%d:%02d:%02d.%03d", hour, minute, second, millisecond)
}
var minuteSecond: String {
String(format:"%d:%02d", minute, second)
}
var hour: Int {
Int((self/3600).truncatingRemainder(dividingBy: 3600))
}
var minute: Int {
Int((self/60).truncatingRemainder(dividingBy: 60))
}
var second: Int {
Int(truncatingRemainder(dividingBy: 60))
}
var millisecond: Int {
Int((self*1000).truncatingRemainder(dividingBy: 1000))
}
var hundredth: Int {
Int((self*100).truncatingRemainder(dividingBy: 100))
}
var timeFormatted: String {
let dateformatter = DateFormatter()
dateformatter.dateStyle = .none
dateformatter.timeStyle = .short
return dateformatter.string(from: Date(timeIntervalSince1970: self))
}
}