我试图让第一,当前季度的最后日期的第一天,我使用它:获取当前季度
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitQuarter | NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:[NSDate date]];
components.quarter = 1;
funStartDate = [[NSCalendar currentCalendar] dateFromComponents: components];
NSLog(@"First day of quater: %@", funStartDate);
[components setQuarter:[components quarter]+1];
funEndDate = [[NSCalendar currentCalendar] dateFromComponents: components];
NSLog(@"Last day of quater: %@", [funEndDate descriptionWithLocale:[NSLocale currentLocale]]);
但在这两个控制台打印我看到今天的日期。我做错了什么?
既然你已经日,月和年在您的组件,四分之一认为是多余的(和不一致的)和被忽略。 (我只是在3个月内添加 - 当然在年底时会“换行”。)(或者,最好使用dateByAddingCompoonents。) –
记录'quarter'的值。此功能是否正常工作?不,它不是:http://stackoverflow.com/questions/11618784/i-want-to-get-a-quarter-value-in-nsdatecomponents-class因此,放弃所有希望让你的代码以这种方式工作。 – matt
其实,@HotLicks,没有必要“包装”这一年。向月份组件添加3将正常工作。日期组件_is_(是)执行日历算术的正确方法。 – matt