Ich habe eine Kalenderanwendung, in der ich das nächste Jahr ab dem aktuellen Datum (NSDate) bekommen möchte.Komm nächstes Jahr vom aktuellen NSDate?
Wie kann ich das tun?
Ich habe eine Kalenderanwendung, in der ich das nächste Jahr ab dem aktuellen Datum (NSDate) bekommen möchte.Komm nächstes Jahr vom aktuellen NSDate?
Wie kann ich das tun?
Sie können NSDateComponents
all die harte Arbeit auszukommen Schaltjahre für die Berechnung und Schaltsekunden:
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];
Wie VdesmedT erwähnt, können Sie dateByAddingTimeInterval verwenden und die Sekunden von einem Jahr hinzuzufügen. Aber um genauer zu sein, können Sie Folgendes tun:
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];
Hoffe, das hilft.
Das ist meine Version: in swift.
let calendar = NSCalendar.currentCalendar()
let newDate = calendar.dateByAddingUnit(.Year, value: 1, toDate: NSDate(), options: NSCalendarOptions.MatchNextTime)
Holen Sie sich einfach das Jahr vom aktuellen Datum und fügen Sie eins hinzu. Welchen Teil weißt du nicht? – Gabe