我試圖讓第一,當前季度的最後日期的第一天,我使用它:獲取當前季度
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