Sono alle prese con questo. Ho un valore in secondi che voglio visualizzare in un'etichetta in formato HH: MM. Ho cercato internet per anni e ho trovato alcune risposte, ma o non le ho completamente comprese, o mi sembra uno strano modo di fare quello che voglio. Se qualcuno potesse darmi una mano su questo, sarebbe fantastico! Tieni presente che sono nuovo in questi giochi, quindi questa domanda potrebbe sembrare davvero basilare per i più esperti là fuori.Convertire numero intero intero per HH: MM, iPhone
risposta
Stavo cercando la stessa cosa che stai cercando, ma non ho trovato uno. Così ho scritto uno -
- (NSString *)timeFormatted:(int)totalSeconds
{
int seconds = totalSeconds % 60;
int minutes = (totalSeconds/60) % 60;
int hours = totalSeconds/3600;
return [NSString stringWithFormat:@"%02d:%02d:%02d",hours, minutes, seconds];
}
funziona perfettamente in Swift così:
func timeFormatted(totalSeconds: Int) -> String {
let seconds: Int = totalSeconds % 60
let minutes: Int = (totalSeconds/60) % 60
let hours: Int = totalSeconds/3600
return String(format: "%02d:%02d:%02d", hours, minutes, seconds)
}
Grazie per la risposta, sembra che ho bisogno, ma non riesco a usarlo senza errori. Sono convinto che l'errore sia dalla mia parte. Se non ti dispiace aiutarmi ulteriormente: Il mio valore è un float ed è in secondi. L'ho visualizzato in un'etichetta quando viene premuto un pulsante. Dove andrà il tuo codice e come faccio a far visualizzare la mia etichetta il valore nel formato HH: MM? Molte grazie, Stu – Stumf
Ordinato, grazie per il vostro aiuto. La tua risposta e http://stackoverflow.com/questions/1259028/convert-nsnumber-double-value-time-time risposta di Pholker erano la ragione per cui potevo farlo! Grazie ancora – Stumf
Grandi cose - ha reso questo un metodo di classe e lo ha inserito in una categoria su NSString. D'accordo con il bitcruncher, molto pulito. –
Questo è come lo faccio:
-(NSString *)formatTimeFromSeconds:(int)numberOfSeconds
{
int seconds = numberOfSeconds % 60;
int minutes = (numberOfSeconds/60) % 60;
int hours = numberOfSeconds/3600;
//we have >=1 hour => example : 3h:25m
if (hours) {
return [NSString stringWithFormat:@"%dh:%02dm", hours, minutes];
}
//we have 0 hours and >=1 minutes => example : 3m:25s
if (minutes) {
return [NSString stringWithFormat:@"%dm:%02ds", minutes, seconds];
}
//we have only seconds example : 25s
return [NSString stringWithFormat:@"%ds", seconds];
}
per SWIFT:
func formatTimeInSec(totalSeconds: Int) -> String {
let seconds = totalSeconds % 60
let minutes = (totalSeconds/60) % 60
let hours = totalSeconds/3600
let strHours = hours > 9 ? String(hours) : "0" + String(hours)
let strMinutes = minutes > 9 ? String(minutes) : "0" + String(minutes)
let strSeconds = seconds > 9 ? String(seconds) : "0" + String(seconds)
if hours > 0 {
return "\(strHours):\(strMinutes):\(strSeconds)"
}
else {
return "\(strMinutes):\(strSeconds)"
}
}
In i OS 8.0 e versioni successive possono anche essere eseguite con NSDateComponentsFormatter
. Devo dire che formatterà la stringa senza il primo zero iniziale, ad esempio '9:30', ma non '09: 30 '. Ma se si desidera utilizzare formattatori, è possibile utilizzare questo codice:
-(NSString *)getTimeStringFromSeconds:(double)seconds
{
NSDateComponentsFormatter *dcFormatter = [[NSDateComponentsFormatter alloc] init];
dcFormatter.zeroFormattingBehavior = NSDateComponentsFormatterZeroFormattingBehaviorPad;
dcFormatter.allowedUnits = NSCalendarUnitHour | NSCalendarUnitMinute;
dcFormatter.unitsStyle = NSDateComponentsFormatterUnitsStylePositional;
return [dcFormatter stringFromTimeInterval:seconds];
}
Se si desidera ottenere anche secondi nel risultato, è necessario aggiungere l'unità 'NSCalendarUnitSecond' agliUnits consentiti. Questo esempio funziona anche per le applicazioni Mac OS X. – edukulele
Questo si aspetta un doppio non un int. Almeno in Swift. –
per SWIFT con orologio contare
var timer = NSTimer()
var count = 1
func updateTime() {
count++
let seconds = count % 60
let minutes = (count/60) % 60
let hours = count/3600
let strHours = hours > 9 ? String(hours) : "0" + String(hours)
let strMinutes = minutes > 9 ? String(minutes) : "0" + String(minutes)
let strSeconds = seconds > 9 ? String(seconds) : "0" + String(seconds)
if hours > 0 {
clockOutlet.text = "\(strHours):\(strMinutes):\(strSeconds)"
}
else {
clockOutlet.text = "\(strMinutes):\(strSeconds)"
}
}
Mentre @Aks' answer per lavori Swift, sono un po 'scettico su hardcoding valori nel mio codice @ edukulele's answer è molto più pulito ma è in Objective-C. L'ho tradotto a Swift con un leggero cambiamento. Normalmente scrivo i miei formattatori come lazy var
s.
private lazy var dateFormatter: NSDateComponentsFormatter = {
let formatter = NSDateComponentsFormatter()
formatter.zeroFormattingBehavior = .Pad
formatter.allowedUnits = [.Hour, .Minute, .Second]
formatter.unitsStyle = .Positional
return formatter
}()
Questo è 'H: MM', non' HH: MM' come richiesto. –
- 1. Come convertire un numero intero (orario) in HH: MM: SS :: 00 in SQL Server 2008?
- 2. Python: convertire secondi per hh: mm: ss
- 3. Come convertire un numero intero in serie
- 4. Come convertire HH: mm: ss.SSS in millisecondi?
- 5. Arrotondare un numero intero al numero intero più vicino
- 6. possiamo convertire il numero intero nel carattere
- 7. Convertire l'input dell'utente nel numero intero
- 8. R: numero intero contro numerico
- 9. Convertire il periodo dal formato "hh: mm: ss" a "hh: mm"
- 10. Come convertire hh: mm: ss in hh: mm in SQL Server?
- 11. Convalida numero intero per input
- 12. Convertire un numero intero in un numero float in Golang
- 13. Come rappresentare un numero intero superiore a un numero intero
- 14. Converti numero intero in stringa
- 15. Iphone UITextField solo intero
- 16. Rails Migrazione per convertire stringa in intero?
- 17. Numero intero o numero decimale
- 18. Converti numero intero di serie
- 19. Converti numero stringa in numero intero
- 20. convertire un intero in base36
- 21. Numero intero fuori intervallo
- 22. Python SHA1 Numero intero
- 23. C++ numero intero funzione
- 24. Numero intero continuo eseguito
- 25. Numero intero Javascript
- 26. Errore TimeSpan.ToString ("hh: mm")
- 27. Yii2 Converti da numero intero a datetime per visualizzare e salvare nel database con numero intero
- 28. come convertire una data gg/mm/aaaa in aaaa-MM-gg HH: mm: ss Android
- 29. Qual è il modo migliore per convertire XMLGregorianCalendar in MM/gg/aaaa hh: mm String?
- 30. Annuncio a schermo intero per iPhone
Date un'occhiata a una [domanda simile ho chiesto qualche tempo fa] (http://stackoverflow.com/questions/1025192/memory-leaks-formatting-a-string-to-display-time-each -secondo) che copre anche l'aspetto della memoria e dell'efficienza. –