Ich habe eine schreckliche Zeit zu versuchen, etwas zu tun, das sollte einfach sein. Ich habe einen NSNumber Wert von 32025.89 Sekunden. Ich muss das in Stunden, Minuten, Sekunden darstellen. Gibt es eine Methode, die das ausspuckt? Ich kann keinen passenden Formatierer finden.NSummer von Sekunden zu Stunden, Minuten, Sekunden
Antwort
Haben Sie versucht, eine NSDate
aus, dass und Druck zu schaffen, die eine NSDateFormatter
mit?
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[theNumber doubleValue]];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSLog(@"%@", [formatter stringFromDate:date]);
[formatter release];
Wenn Sie die einzelnen Werte für Stunden, Minuten benötigen, und Sekunden mit NSDateComponents
wie nall vorgeschlagen.
Die oben genannten werden nicht die richtigen Beträge gedruckt, wenn die NSNumber
mehr als einen Tag darstellt. Es könnte 1 Tag und 1 Stunde sein, und es würde nur 01:00:00 drucken. In diesem Fall sollten Sie Stunden, Minuten und Sekunden manuell berechnen.
Dies ist eher in der Linie von dem, was ich suchte. Ich weiß, dass ich Mathe könnte, aber ich habe versucht, einen Weg zu finden, der es im Wesentlichen für mich getan hat - NSDateFormatter war ich denke, was ich brauchte. Vielen Dank. – SonnyBurnette
Mit diesem Code hatte ich einen Benutzer, der einen falschen Wert erhalten hat - anstatt von 03:00 für 180 Sekunden - sie haben 33:00 bekommen. Sie waren in einer Zeitzone, die 4,5 Stunden voraus war und ich fragte mich, ob die halbe Stunde in ihrer Zeitzone möglicherweise dazu geführt haben könnte ... – petenelson
Wenn Sie es nicht einfach teilen wollen, versuchen Sie es. Es kann nahe genug für Ihre Zwecke sein. Hinweis: Es berücksichtigt nicht die Genauigkeit einer Sekunde. (setSecond
dauert ein NSInteger
).
NSDateComponents* c = [[[NSDateComponents alloc] init] autorelease];
[c setSecond:32025.89];
NSCalendar* cal = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]
autorelease];
NSDate* d = [cal dateFromComponents:c];
NSDateComponents* result = [cal components:NSHourCalendarUnit |
NSMinuteCalendarUnit |
NSSecondCalendarUnit
fromDate:d];
NSLog(@"%d hours, %d minutes, %d seconds",
[result hour], [result minute], [result second]);
Hier ist eine Art und Weise ohne Bibliotheken mit Ausnahme modf()
von math.h
:
float fsec = 32025.89f, frac = 0;
int milliseconds = (int)(modf(fsec, &frac) * 1000);
int isec = (int)frac;
int hours = isec/3600;
int minutes = (isec % 3600)/60;
int seconds = isec % 60;
Ich habe gerade bemerkt, dass du 0 durch 3600 teilst, um Stunden zu bekommen. Das ist ein Tippfehler, oder? Du meinst "fsec/3600" oder? – SonnyBurnette
Und was hat 'frexp' damit zu tun ?? –
um ... extrahiert es den Bruchteil und den ganzzahligen Teil einer floatingh Zeigerzahl. In diesem Fall die Millisekunden und Sekunden. –
NSNumber * valueForDisplay = [NSNumber numberWithDouble: [self valueForDisplay: clockName]];
NSNumber *totalDays = [NSNumber numberWithDouble:
([valueForDisplay doubleValue]/86400)];
NSNumber *totalHours = [NSNumber numberWithDouble:
(([valueForDisplay doubleValue]/3600) -
([totalDays intValue] * 24))];
NSNumber *totalMinutes = [NSNumber numberWithDouble:
(([valueForDisplay doubleValue]/60) -
([totalDays intValue] * 24 * 60) -
([totalHours intValue] * 60))];
NSNumber *totalSeconds = [NSNumber numberWithInt:
([valueForDisplay intValue] % 60)];
- 1. Oracle Sekunden in Stunden umwandeln: Minuten: Sekunden
- 2. Konvertieren von Sekunden in Stunden, Minuten und Sekunden
- 3. Java: Konvertierung einer Eingabe von Sekunden in Stunden/Minuten/Sekunden
- 4. Format Zeitspanne zu zeigen, Stunden, Minuten, Sekunden
- 5. Python: Format Zeit von Sekunden bis Stunden, Minuten und Sekunden
- 6. Konvertieren von Sekunden in Tage: Stunden: Minuten: Sekunden
- 7. Sekunden in Tage, Stunden, Minuten und Sekunden umrechnen
- 8. Drucken NominalDiffTime als Stunden, Minuten und Sekunden
- 9. Tage, Stunden, Minuten, Sekunden zwischen zwei Daten
- 10. Ändern Sie Etikett Text von Stunden: Minuten: Sekunden bis Minuten: Sekunden
- 11. jQuery Countdown (Minuten: Sekunden) von Sekunden
- 12. Wie füge ich Stunden, Minuten, Sekunden zu dateadd sql hinzu?
- 13. Aggregat Stunden Minuten Sekunden Text Spalten zu Zeit - Excel
- 14. eleganteste Weg chrono kombinieren :: time_point von Stunden, Minuten, Sekunden usw.
- 15. So entfernen Sie Millisekunden, Sekunden, Minuten und Stunden von Datum
- 16. Sekunden in Tage, Minuten und Sekunden umrechnen
- 17. Sekunden in Minuten und Sekunden umrechnen
- 18. Teradata Umwandlung von Sekunden bis Stunden
- 19. Javascript Datetime-Konvertierung in "______ Sekunden/Minuten/Stunden/Monate"
- 20. Filter Aufzeichnungen zwischen bestimmten Stunden, Minuten und Sekunden in Funkendatenrahmen
- 21. Countdown-Sekunden in Stunden umwandeln
- 22. Wie formatiere ich eine Dauer in Stunden, Minuten und Sekunden?
- 23. Format Timer Etikett Stunden: Minuten: Sekunden in Swift
- 24. Konvertieren Dezimal in Stunden Minuten und Sekunden in C# .Net
- 25. Wie kann man Tage/Stunden/Minuten/Sekunden in Rubin analysieren?
- 26. Konvertieren Sie Stunden: Minuten: Sekunden in Gesamtminuten in Excel
- 27. Countdown Tage, Stunden, Minuten, Sekunden gemacht Skript jquery
- 28. So erhalten Sie die Stunden, Minuten und Sekunden
- 29. sybase sql Art der Umwandlung Sekunden Wert in Stunden Minuten und Sekunden
- 30. Grad, Minuten und Sekunden Regex
Duplizieren von http://stackoverflow.com/questions/1237778/how-do-i-break-down-an-nstimeinterval-into-year-months-days-hours-minutes-and. –