我从datepicker拿了两个NSDates 我想计算日期之间的确切年份差异。如果我将第二个日期更改为第一天更大,那么它应该给我年份差异2 ...如果把日期缩小,它应该给我0年的差异..我可以实现吗?请帮帮我..
这是我计算差异的代码
NSCalendar *gregorian1 = [NSCalendar currentCalendar];
NSUInteger unitFlags = NSYearCalendarUnit;
NSDateComponents *components1 = [gregorian1 components:unitFlags
fromDate:startDate
toDate:endDate options:0];
NSInteger diff = [components1 year];
答案 0 :(得分:4)
试试这个:
NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
fromDate:dateA
toDate:dateB
options:0];
NSLog(@"Difference in date components: %i/%i/%i", components.day, components.month, components.year);
结果你在日期组件上有所不同。
答案 1 :(得分:1)
Swift 3
extension Date{
func yearsTo(_ date : Date) -> Int{
return Calendar.current.dateComponents([.year], from: self, to: date).year ?? 0
}
}