我有一个从两个 NSTimeInterval 对象计算出来的 NSDate。如何将此间隔的年份值作为 doubleCGFloat 返回多个十进制数字?

比方说,我有一个人的 dob,我想以小数形式返回他的年龄,如 xx.xxxxxxxx 岁。

最佳答案

您需要使用 NSCalendar。并与 NSDate 对象有所不同。下面是一个例子:

// The time interval
NSTimeInterval theTimeInterval = ...;

// Get the system calendar
NSCalendar *sysCalendar = [NSCalendar currentCalendar];

// Create the NSDates
NSDate *date1 = [[NSDate alloc] init];
NSDate *date2 = [[NSDate alloc] initWithTimeInterval:theTimeInterval sinceDate:date1];

// Get conversion to months, days, hours, minutes
NSCalendarUnit unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit;

NSDateComponents *breakdownInfo = [sysCalendar components:unitFlags fromDate:date1  toDate:date2  options:0];
NSLog(@"Break down: %i min : %i hours : %i days : %i months", [breakdownInfo minute], [breakdownInfo hour], [breakdownInfo day], [breakdownInfo month]);

关于ios - 如何获得具有多个十进制数字的两个NSDates之间的年差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31246583/

10-13 09:44