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.
58 lines
1.5 KiB
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))
|
|
}
|
|
|
|
}
|
|
|