Mi sto divertendo terribilmente cercando di fare qualcosa che dovrebbe essere facile. Ho un valore NSNumber di 32025,89 secondi. Devo rappresentarlo in ore, minuti, secondi. C'è un metodo che lo sputa? Non riesco a trovare un formattatore adeguato.NSNumero di secondi a Ore, minuti, secondi
risposta
Hai provato la creazione di un NSDate
da quello e di stampa che utilizza un NSDateFormatter
?
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[theNumber doubleValue]];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSLog(@"%@", [formatter stringFromDate:date]);
[formatter release];
Se avete bisogno di valori individuali per ore, minuti e secondi, utilizzare NSDateComponents
come suggerito da Nall.
Quanto sopra non stamperà gli importi corretti se lo NSNumber
rappresenta più di un giorno. Potrebbe essere 1 giorno e 1 ora, e stampa solo 01:00:00. In tal caso, calcolare manualmente ore, minuti e secondi.
Questo è più sulla falsariga di quello che stavo cercando. So che potevo fare i conti ma stavo cercando di trovare un modo che essenzialmente lo facesse per me - NSDateFormatter credo, quello di cui avevo bisogno. Grazie. – SonnyBurnette
Utilizzando questo codice ho avuto un utente che ha ottenuto un valore errato - invece di 03:00 per 180 secondi - hanno ottenuto le 33:00. Erano in un fuso orario con 4,5 ore di anticipo e mi sono chiesto se la mezz'ora nel loro fuso orario avrebbe potuto causare questo ... – petenelson
Se non vuoi semplicemente dividerlo, prova questo. Potrebbe essere abbastanza vicino per i tuoi scopi. Nota: Non tiene conto della precisione sub-secondo. (setSecond
prende uno 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]);
Ecco un modo senza librerie ad eccezione di modf()
da 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;
Ho appena notato che dividi 0 per 3600 per ottenere ore. È un refuso, vero? Vuoi dire "fsec/3600" giusto? – SonnyBurnette
E cosa c'entra il 'frexp' con questo ?? –
um ... estrae la parte frazione e la parte intera di un numero di puntatore floatingh. In questo caso, i millisecondi e i secondi. –
NSNumber * valueForDisplay = [NSNumber numberWithDouble: [auto 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. Convertire secondi a giorni: ore: minuti: secondi
- 2. Oracle Converti secondi in ore: minuti: secondi
- 3. R: Convertire ore: minuti: secondi
- 4. Conversione dei secondi in ore, minuti e secondi
- 5. Come convertire secondi in ore, minuti e secondi?
- 6. Giorni, ore, minuti, secondi tra due date
- 7. Differenza tra datetimes in ore, minuti, secondi
- 8. Conversione ore: minuti: secondi in minuti totali in excel
- 9. Da millisecondi a ore, minuti, secondi e millisecondi
- 10. Come aggiungere Ore, minuti, secondi a dateadd sql?
- 11. Converti secondi in giorni, minuti e secondi
- 12. Converti secondi in minuti e secondi
- 13. formato di etichetta timer ore: minuti: secondi in Swift
- 14. data di PHP() ore, minuti e secondi senza zeri
- 15. intervallo di tempo formato per mostrare ore, minuti, secondi
- 16. Semplicissimo modo di convertire HH: MM: SS (ore: minuti: secondi.split secondi) in secondi
- 17. Ore/minuti/secondi corrispondenti nelle espressioni regolari - un modo migliore?
- 18. Come convertire secondi in minuti e ore in javascript
- 19. Javascript mostra millisecondi come giorni: ore: minuti senza secondi
- 20. Tracciare secondi, minuti e ore sul asseY con Highcharts
- 21. Php: DateTime: come impostare solo secondi (non ore né minuti)
- 22. Javasacript Timer conto alla rovescia in giorni, ore, minuti, secondi
- 23. Converti decimale in ore Minuti e secondi in C# .Net
- 24. Come analizzare giorni/ore/minuti/secondi nel rubino?
- 25. come convertire 270921sec in giorni + ore + minuti + secondi? (ruby)
- 26. Oracle current_date o sysdate senza ore, minuti, secondi
- 27. Convertire i secondi in giorni, minuti e ore in Oggettivo
- 28. ottenere i dati in pochi secondi, vogliono calcolare le ore, minuti e secondi
- 29. Formattazione di secondi e minuti
- 30. Countdowntimer in minuti e secondi
duplicati di http://stackoverflow.com/questions/1237778/how-do-i-break-down-an-nstimeinterval-into-year-months-days-hours-minutes-and. –