Domanda

voglio continuare data / volte in un negozio CoreData senza secondi o millisecondi. (. Sto facendo un po 'di elaborazione di volte il giro largo, e secondi randagi / millisecondi diventare una chiave inglese) E' abbastanza facile far cadere i secondi:

NSDate *now = [NSDate date];
NSDateComponents *time = [[NSCalendar currentCalendar]
                          components:NSHourCalendarUnit | NSMinuteCalendarUnit 
                          | NSSecondCalendarUnit fromDate:now];
    NSDate *nowMinus = [now addTimeInterval:-time.second];
    // e.g. 29 Aug 10 4:43:05 -> 29 Aug 10 4:43:00

Questa grande opera per azzerare i secondi, ma non riesco a trovare un NSMillisecondCalendarUnit ho potuto utilizzare a zero i millesimi di secondo, e ho bisogno di. Qualche idea? Grazie.

È stato utile?

Soluzione

timeIntervalSince1970 restituisce il numero di secondi (in un doppio) dal gennaio al 1 °, 1970. È possibile utilizzare questo tempo per troncare qualsiasi quantità di secondi che ti piace. Per lungo giro al minuto più vicino, si potrebbe fare:

NSTimeInterval timeSince1970 = [[NSDate date] timeIntervalSince1970];

timeSince1970 -= fmod(timeSince1970, 60); // subtract away any extra seconds

NSDate *nowMinus = [NSDate dateWithTimeIntervalSince1970:timeSince1970];

I tipi di dati in virgola mobile sono intrinsecamente imprecise, ma quanto sopra possono essere abbastanza preciso per le vostre esigenze.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top