Ho un'applicazione di calendario in cui voglio ottenere l'anno successivo dalla data corrente (NSDate).Ricevi l'anno prossimo dall'attuale NSDate?
Come posso fare questo?
Ho un'applicazione di calendario in cui voglio ottenere l'anno successivo dalla data corrente (NSDate).Ricevi l'anno prossimo dall'attuale NSDate?
Come posso fare questo?
È possibile effettuare NSDateComponents
fare tutto il duro lavoro di calcolo anni bisestili e secondo salto:
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];
Come accennato VdesmedT, è possibile utilizzare dateByAddingTimeInterval e aggiungere i secondi di un anno. Ma per essere più precisi, puoi fare quanto segue:
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];
Spero che questo aiuti.
Questa è la mia versione: in rapido.
let calendar = NSCalendar.currentCalendar()
let newDate = calendar.dateByAddingUnit(.Year, value: 1, toDate: NSDate(), options: NSCalendarOptions.MatchNextTime)
Basta prendere l'anno dalla data corrente e aggiungerne uno. Quale parte non sai come fare? – Gabe