我有一个日历应用程序,我希望从当前日期(NSDate)获得下一年。
我该怎么做?
答案 0 :(得分:19)
你可以让NSDateComponents
完成计算闰年和闰秒的所有艰苦工作:
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];
答案 1 :(得分:5)
如VdesmedT所述,您可以使用dateByAddingTimeInterval并添加一年的秒数。但更确切地说,您可以执行以下操作:
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];
希望这有帮助。
答案 2 :(得分:2)
这是我的版本:在swift中。
let calendar = NSCalendar.currentCalendar()
let newDate = calendar.dateByAddingUnit(.Year, value: 1, toDate: NSDate(), options: NSCalendarOptions.MatchNextTime)
答案 3 :(得分:2)
R