這裏是問題,我正在尋找一種方法來獲得一個月的週數。我已經找到了一個似乎適用於ios 5的解決方案,但它不在io6上(返回的數字不一樣,在ios 6上又多一個)。如何獲得一個月的週數
- (int)weeksOfMonth:(int)month inYear:(int)year
{
NSCalendar *cCalendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setMonth:month];
[components setYear:year];
NSRange range = [cCalendar rangeOfUnit:NSDayCalendarUnit
inUnit:NSMonthCalendarUnit
forDate:[cCalendar dateFromComponents:components]];
cCalendar = [NSCalendar currentCalendar];
[cCalendar setMinimumDaysInFirstWeek:4];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setLocale: [[NSLocale alloc] initWithLocaleIdentifier:@"fr"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSMutableSet *weeks = [[NSMutableSet alloc] init ];
for(int i = 0; i < range.length; i++)
{
NSString *temp = [NSString stringWithFormat:@"%4d-%2d- %2d",year,month,range.location+i];
NSDate *date = [dateFormatter dateFromString:temp ];
int week = [[cCalendar components: NSWeekOfYearCalendarUnit fromDate:date] weekOfYear];
[weeks addObject:[NSNumber numberWithInt:week]];
}
return [weeks count];
}
io6返回值爲6,io5返回值爲5。
你有什麼想法嗎?
編輯:另一件事,我的設備(ios5)是在法語和模擬器(ios6)是英文。也許它可以改變一些東西(比如每週的第一天?)?
即使在osx中它說6.這是正確的計數。 – 2013-03-06 09:35:40
你正在試圖顯示問題的月份和年份是多少? – occulus 2013-03-06 09:41:14
檢查我的updatd代碼,我檢查它在osx和ios6中,它工作正常。 – 2013-03-06 10:40:35