Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 两个日期之间的确切年份差_Ios_Nsdate - Fatal编程技术网

Ios 两个日期之间的确切年份差

Ios 两个日期之间的确切年份差,ios,nsdate,Ios,Nsdate,我从datepicker那里得到了两次约会 我想计算两个日期之间的年差如果我把第二个日期的第二天改大一点,它应该给我年差2如果把第二天改小一点,它应该给我0年差我怎么才能做到呢?请帮帮我 这是我计算差异的代码 NSCalendar *gregorian1 = [NSCalendar currentCalendar]; NSUInteger unitFlags = NSYearCalendarUnit; NSDateComponents *components1 = [gr

我从datepicker那里得到了两次约会 我想计算两个日期之间的年差如果我把第二个日期的第二天改大一点,它应该给我年差2如果把第二天改小一点,它应该给我0年差我怎么才能做到呢?请帮帮我

这是我计算差异的代码

 NSCalendar *gregorian1 = [NSCalendar currentCalendar];


    NSUInteger unitFlags = NSYearCalendarUnit;

    NSDateComponents *components1 = [gregorian1 components:unitFlags
                                                fromDate:startDate
                                                  toDate:endDate options:0];
    NSInteger diff = [components1 year];
试试这个:

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);
因此,您的日期组件有所不同。

请尝试以下方法:

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);
因此,您在日期组件上存在差异。

Swift 3

extension Date{
    func yearsTo(_ date : Date) -> Int{
        return Calendar.current.dateComponents([.year], from: self, to: date).year ?? 0
    }
}
斯威夫特3

extension Date{
    func yearsTo(_ date : Date) -> Int{
        return Calendar.current.dateComponents([.year], from: self, to: date).year ?? 0
    }
}

你的问题是什么?你是什么时候试的?你有没有测试过一些价值观,loggued?你有什么问题?你是什么时候试的?你有一些测试值吗,loggued?