Mam aplikację kalendarza, w której chcę uzyskać następny rok od bieżącej daty (NSDate).Uzyskaj następny rok z bieżącego NSDate?
Jak mogę to zrobić?
Mam aplikację kalendarza, w której chcę uzyskać następny rok od bieżącej daty (NSDate).Uzyskaj następny rok z bieżącego NSDate?
Jak mogę to zrobić?
Można dokonać NSDateComponents
zrobić całą ciężką pracę obliczania lat przestępnych i przestępnych sekund:
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];
Jak wspomniano VdesmedT, można użyć dateByAddingTimeInterval i dodaj sekund od jednego roku. Ale mówiąc dokładniej, możesz wykonać następujące czynności:
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];
Mam nadzieję, że to pomoże.
To jest moja wersja: w szybkim tempie.
let calendar = NSCalendar.currentCalendar()
let newDate = calendar.dateByAddingUnit(.Year, value: 1, toDate: NSDate(), options: NSCalendarOptions.MatchNextTime)
Po prostu pobierz rok od bieżącej daty i dodaj jeden. Której części nie wiesz, jak to zrobić? – Gabe