1 //获取当前时间若干年、月、日之后的时间
2 + (NSDate *)dateWithFromDate:(NSDate *)date years:(NSInteger)years months:(NSInteger)months days:(NSInteger)days{ 3 NSDate * latterDate; 4 if (date) { 5 latterDate = date; 6 }else{ 7 latterDate = [NSDate date]; 8 } 9 NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 10 NSDateComponents *comps = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute 11 fromDate:latterDate]; 12
13 [comps setYear:years]; 14 [comps setMonth:months]; 15 [comps setDay:days]; 16
17 return [calendar dateByAddingComponents:comps toDate:latterDate options:0]; 18 }
1 /** 2 * @method 3 * 4 * @brief 获取两个日期之间的天数 5 * @param fromDate 起始日期 6 * @param toDate 终止日期 7 * @return 总天数 8 */
9 + (NSInteger)numberOfDaysWithFromDate:(NSDate *)fromDate toDate:(NSDate *)toDate{ 10 NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 11
12 NSDateComponents * comp = [calendar components:NSCalendarUnitDay 13 fromDate:fromDate 14 toDate:toDate 15 options:NSCalendarWrapComponents]; 16 NSLog(@" -- >> comp : %@ << --",comp); 17 return comp.day; 18 }
根据以上两个方法可以获得更多根据日期计算天数的方法,只是在获取日期时传的参数不同,在此就不一一列举了。