Format timer-label " Stunden:Minuten:Sekunden in Swift
Habe ich einen NSTimer, die nach UNTEN zählt von 2 Stunden bis auf 0.
Hier sind einige meiner code:
var timer = NSTimer()
let timeInterval:NSTimeInterval = 0.5
let timerEnd:NSTimeInterval = 0.0
var timeCount:NSTimeInterval = 7200.0 //seconds or 2 hours
//TimeString Function
func timeString(time:NSTimeInterval) -> String {
let minutes = Int(time) / 60
let seconds = time - Double(minutes) * 60
let secondsFraction = seconds - Double(Int(seconds))
return String(format:"%02i:%02i.%01i",minutes,Int(seconds),Int(secondsFraction * 10.0))
}
Den Timer-Label ist:
TimerLabel.text = "Time: \(timeString(timeCount))"
ABER, meine timer-label zeigt wie:
Time: 200:59.0
Wie formatiere ich meine timer-label wie folgt Aussehen:
Time: 01:59:59 // (which is hours:minutes:seconds)?
[Bitte beachten Sie, dass ich keine Probleme mit meinem countdown-timer, brauche ich nur zu wissen, wie man ÄNDERN Sie DAS Uhrzeitformat mit den TimeString Funktion.]
BEARBEITEN:
Jemand erwähnte, dass meine Frage eine mögliche doppelte von dieser hier: Swift - iOS - Datums-und Zeitangaben in verschiedenen format. ALLERDINGS bin ich gefragt, wie ändere ich das format mit dem TimeString Funktion, die ich oben gab. Ich bin nicht Fragen, für eine andere Art und WEISE auf, wie es zu tun.
Zum Beispiel:
let minutes = Int(time) / 60
gibt mir "200" min. etc.
Wo ist deine Berechnung der Stunden?
Das ist nicht im entferntesten nahe, ein Duplikat dieser Frage. Diese Frage ist nicht der Umgang mit einer
NSDate
und diese Frage die Lösung hat nichts zu tun mit NSDateFormatter
.InformationsquelleAutor mjoe7 | 2016-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Berechnungen sind alle falsch.
InformationsquelleAutor rmaddy
@rmaddy ' s Lösung ist korrekt und beantwortet die Frage. Doch weder die Frage noch die Lösung berücksichtigt die internationalen Benutzer. Ich schlage vor, mit
DateComponentsFormatter
und lassen Sie den Rahmen, Griff der Berechnungen und Formatierung. Dadurch wird der code weniger fehleranfällig und mehr zukunftssicher.Stieß ich auf diese blog-post bietet eine übersichtliche Lösung:
http://crunchybagel.com/formatting-a-duration-with-nsdatecomponentsformatter/
Zog aus, die post, das ist das code-snippet ersetzen würde der code, den Sie gerade verwenden, um Ihre Berechnungen. Aktualisiert für Swift 3:
Tolle Antwort, ich hatte vergessen, wie dies zu tun.
Tolle Antwort. Dank
Sollte dies der akzeptierte Lösung.
Nein, da der OP ausdrücklich angegeben wird: "ich Frage, wie ändere ich das format mit dem TimeString Funktion, die ich oben gab. Ich bin nicht Fragen, für eine andere Art und WEISE auf, wie es zu tun.". Mit
DateComponentsFormatter
ist, was die meisten Menschen verwenden sollten, aber es ist nicht das, was der OP wollte.InformationsquelleAutor Mark Suman
Der beste Weg zur Implementierung eines Timer in Swift (swift 4 gut funktioniert).
Deklarieren Sie die variable Sekunden: Int und weist den Wert in Sekunden, der timer.
Dann mit dem Timer () - Funktion, Rabatt eine Sekunde bei einer Zeit und übergeben Sie es an diese Funktion.
Ich hoffe, ich kann helfen, die es braucht.
InformationsquelleAutor oscar castellon
Deklarieren Sie die Variablen Stunden ,Minuten und Sekunden und kopieren Sie den code unten funktioniert es einwandfrei.
InformationsquelleAutor Prashanth Pasi