2017-10-23 8 views
0

Ich benutze Swift, um ein Array von Zeiten zu einer durchschnittlichen Anzahl von Malen in hundertstel Sekunden zu berechnen. Der resultierende Mittelwert wird von den gesamten hundertstel Sekunden ausgegeben.Konvertieren Sekunden zu Zeitstempel

ex: Gesamt Hundredth Sekunden 111

Wie kann ich wandeln diese Hundertstel Sekunden

(Minuten): (Sekunden). (Hundertstelsekunde)

(max. 60): (max. 60). (Max 100)

ex: 00: 01,11

ich dies unter Verwendung von Array zu konvertieren Hundertstel Sekunden auf insgesamt:

let timeToSecondsArray = valueLast20.map{ 
    i -> Int in 
    let timeString = (i as AnyObject).components(separatedBy: ":") 
    let minute = Int(timeString[0]) 
    let second = Int(timeString[1]) 
    let hundredthseconds = Int(timeString[2]) 
    let minuteToSec = minute! * 3600 
    let secondToSec = second! * 60 
    let totalSeconds = minuteToSec + secondToSec + hundredthseconds! 
    return totalSeconds 
} 

let seconds: Int = timeToSecondsArray.reduce(0, {x, y in x + y})/timeToSecondsArray.count 
let one = String(format: "%02ld", seconds/3600) 
let two = String(format: "%02ld", (seconds%3600)/60) 
let three = String(format: "%02ld", ((seconds%3600)%60)) 
self.averageTime.text = "\(one):\(two).\(three)" 
+1

Was ist Ihre Frage? * "(was auch immer zu sagen ist)" * -> Millisekunden – luk2302

+3

111 Sekunden ist nicht 1 Minute 11 Sekunden. – chrisz

+0

Okay, lass uns von vorne anfangen: Es ist nicht wirklich Millisekunde, sondern "Hundertstelsekunde" (Centisekunde). Und was Sie falsch machen, ist die Annahme, dass die Eingabe von 111 Sekunden ist, ist es nicht, das sind 111 Hundertstel einer Sekunde bedeutet eine volle Sekunde und 11 weitere Hundertstelsekunden. – luk2302

Antwort

1
let valueLast20 = ["01:03:24", "01:00:98"] 

let hundredthSecondsArray = valueLast20.map{ 
    i -> Int in 
    let timeString = (i as AnyObject).components(separatedBy: ":") 
    let minute = Int(timeString[0]) 
    let second = Int(timeString[1]) 
    let hundredthSeconds = Int(timeString[2])! 
    let minuteToHundredth = minute! * 60 * 100 
    let secondToHundredth = second! * 100 
    let totalSeconds = minuteToHundredth + secondToHundredth + hundredthSeconds 
    return totalSeconds 
} 

let hundredth: Int = hundredthSecondsArray.reduce(0, +)/hundredthSecondsArray.count 
let one = String(format: "%02ld", hundredth/100/60) 
let two = String(format: "%02ld", (hundredth/100 % 60)) 
let three = String(format: "%02ld", (hundredth % 100)) 
print("\(one):\(two).\(three)") 

01: 02.11

Verwandte Themen