Quiero dos años NSInteger, mes para un mes atrás. p.ej. ahora es 2011-01 cómo puedo obtener 2010-12. agregar es una cosa, pero quiero restar. Espero que alguien pueda ayudarme un poco aquí.NSDate restar un mes
NSDate *date = [NSDate date];
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:date];
NSInteger year = [dateComponents year];
NSInteger month = [dateComponents month];
[calendar release];
NSString * pdf_name = [NSString stringWithFormat:@"file_%d_%02d.pdf", year, month];
saluda endo
EDIT: Mi solución
NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendarUnit unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDate *date = [NSDate date];
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:date];
NSInteger year = [dateComponents year];
NSInteger month = [dateComponents month];
BOOL substractOneMonth = YES;
if (substractOneMonth) {
if (month==1) {
year--;
month = 12;
}else {
month--;
}
}
[calendar release];
NSString * pdf_name = [NSString stringWithFormat:@"file_%d_%02d.pdf", year, month];
Lo siento cuando voy con su solución estoy recibiendo: 4021-12-12 08:32:40 +0000 –
Huh, eso es extraño. Aquí está mi salida: 2011-01-06 03:49:28 +0000 y 2010-12-06 03:49:28 +0000. Me encantaría escuchar una explicación de por qué estamos viendo resultados diferentes. – donkim
Esta es la forma correcta de hacerlo. –