我有一个 NSTimeInterval
从两个 NSDate
对象计算出来的。如何将此间隔的年份值返回为具有多个小数位的 double
或 CGFloat
?
比方说,我有某人的 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/