conversion from NSTimeInterval to hour,minutes,seconds,milliseconds in swift

前端 未结 15 1332
不思量自难忘°
不思量自难忘° 2020-12-07 20:05

My code is here:

func stringFromTimeInterval(interval:NSTimeInterval) -> NSString {

    var ti = NSInteger(interval)
    var ms = ti * 1000
    var secon         


        
15条回答
  •  执笔经年
    2020-12-07 20:24

    SWIFT 3 Extension

    I think this way is a easier to see where each piece comes from so you can more easily modify it to your needs

    extension TimeInterval {
        private var milliseconds: Int {
            return Int((truncatingRemainder(dividingBy: 1)) * 1000)
        } 
    
        private var seconds: Int {
            return Int(self) % 60
        } 
    
        private var minutes: Int {
            return (Int(self) / 60 ) % 60
        } 
    
        private var hours: Int {
            return Int(self) / 3600
        } 
    
        var stringTime: String {
            if hours != 0 {
                return "\(hours)h \(minutes)m \(seconds)s"
            } else if minutes != 0 {
                return "\(minutes)m \(seconds)s"
            } else if milliseconds != 0 {
                return "\(seconds)s \(milliseconds)ms"
            } else {
                return "\(seconds)s"
            }
        }
    }
    

提交回复
热议问题