【问题标题】:How many quarters between two dates?两个日期之间有多少个季度?
【发布时间】:2012-11-23 13:13:21
【问题描述】:
NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendarUnit unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *dateStart = [calendar components:unitFlags fromDate:start];
quarterStart = [dateStart quarter];
NSDateComponents *dateEnd = [calendar components:unitFlags fromDate:end];
quarterEnd = [dateEnd quarter];

有两个 NSDate 开始和结束并提取开始季度和结束季度我需要知道这两个日期之间季度的差异。

我知道我可以划分总天数 / 90 天,但我正在寻找另一种只有这些数据的解决方案。

有什么提示吗?

【问题讨论】:

    标签: objective-c ios nsdate nscalendar nsdatecomponents


    【解决方案1】:

    你应该试试:

    NSDateComponents *result = [[NSCalendar currentCalendar] components:NSQuarterCalendarUnit fromDate:start toDate:end options:0];
    NSInteger numberOfQuaters = [result quarter];
    

    【讨论】:

    • 谢谢,这有帮助 :) 你认为我的其他解决方案也不错(即使不是太……优雅)?
    • 参见 developer.apple.com 上 WWDC 2011 的第 117 节。它包含很多关于日历计算的有用信息,以及为什么你不应该手动执行它。
    • 您发布的代码应该作为“独立”工作吗?还是我需要先分配 NSCalendar ?我正在尝试,但我总是收到结果 = 0
    • 谢谢,答案是正确的,但是对于苹果关于 Quarter 的错误,它现在不起作用。
    【解决方案2】:

    我已经使用它解决了,因为其他建议的答案不适用于 Apple 在 Quarter Unit 上的错误。

    numberOfQuarters = (4 - startQuarter) + ((endYear -1 - startYear) * 4) + endQuarter;
    

    【讨论】:

    • 你能详细说明什么错误吗?您是否已提交报告?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 2011-01-16
    • 2022-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多