Tengo una aplicación de calendario en la que quiero obtener el próximo año a partir de la fecha actual (NSDate).Obtener el próximo año del NSDate actual?
¿Cómo puedo hacer esto?
Tengo una aplicación de calendario en la que quiero obtener el próximo año a partir de la fecha actual (NSDate).Obtener el próximo año del NSDate actual?
¿Cómo puedo hacer esto?
Puede hacer NSDateComponents
hacer todo el trabajo duro de calcular los años bisiestos y los segundos intercalares:
NSDate *today = [[NSDate alloc] init];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setYear:1];
NSDate *nextYear = [gregorian dateByAddingComponents:offsetComponents toDate:today options:0];
Como se mencionó VdesmedT, puede utilizar dateByAddingTimeInterval y añadir los segundos de un año. Pero para ser más precisos, puede hacer lo siguiente:
NSDate *today = [NSDate date]; // get the current date
NSCalendar* cal = [NSCalendar currentCalendar]; // get current calender
NSDateComponents* dateOnlyToday = [cal components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:today];
[dateOnlyToday setYear:([dateOnlyToday year] + 1)];
NSDate *nextYear = [cal dateFromComponents:dateOnlyToday];
Espero que esto ayude.
Esta es mi versión: in swift.
let calendar = NSCalendar.currentCalendar()
let newDate = calendar.dateByAddingUnit(.Year, value: 1, toDate: NSDate(), options: NSCalendarOptions.MatchNextTime)
Simplemente obtenga el año a partir de la fecha actual y agregue uno. ¿Qué parte no sabes cómo hacer? – Gabe