【问题标题】:exact year difference between two nsdates两个 nsdate 之间的确切年份差异
【发布时间】:2014-09-15 10:48:01
【问题描述】:

我正在从 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];

【问题讨论】:

  • 你的问题是什么?你试过什么日期?您是否有一些值经过测试和记录?

标签: ios nsdate


【解决方案1】:

试试这个:

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);

因此,您的日期组件有所不同。

【讨论】:

    【解决方案2】:

    斯威夫特 3

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

    【讨论】:

      猜你喜欢
      • 2020-03-28
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 2011-05-31
      • 1970-01-01
      相关资源
      最近更新 更多