Necesito obtener la fecha de ayer con el objeto NSDate. ¿Alguna idea?Obtenga ayer con NSDate en el objetivo-c
EDIT: SOLUCIONADO:
NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-86400];
Necesito obtener la fecha de ayer con el objeto NSDate. ¿Alguna idea?Obtenga ayer con NSDate en el objetivo-c
EDIT: SOLUCIONADO:
NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-86400];
NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow: -(60.0f*60.0f*24.0f)];
Editar: Esta solución no es correcta. Vea la respuesta de Aadhiras para la solución correcta.
'NSTimeInterval' es un doble, por lo que puede deshacerse de la' f'. Aunque el compilador hace esto probablemente también para ti. – JustSid
Cuando no necesito la precisión, me gusta decirle al compilador que flotar es suficiente porque, hasta donde yo sé, el procesador de iPhone no puede manejar el doble ni tan bien como flotar. – dasdom
Depende de la generación, pero es muy probable que el compilador resuelva la ecuación ya arreglada en su lugar e incluso si no fuera así, ¡tres multiplicaciones no son tan caras! Hay mejores lugares para hacer micro-optimización. – JustSid
Pruebe este código. Con esta manera, se puede conseguir próximos días, próximos meses, días, meses anteriores anteriores ..
NSDate *now = [NSDate date];
int daysToAdd = -1;
// set up date components
NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];
[components setDay:daysToAdd];
// create a calendar
NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDate *yesterday = [gregorian dateByAddingComponents:components toDate:now options:0];
NSLog(@"Yesterday: %@", yesterday);
[gregorian release];
+1 esta es una mejor respuesta. Agregar o restar 86400 segundos puede dar la respuesta INCORRECTA si hoy o ayer es el día en que la hora local cambia del horario de verano al horario estándar (o viceversa) según la hora del día en que realice esa operación. – progrmr
Posible duplicado: http://stackoverflow.com/questions/4052553/find-out-if-an-nsdate -es-hoy-ayer-mañana – 0x8badf00d
Entonces le pediría que verifique mi respuesta. – dasdom