你好
我在设置firstWeekDay时遇到问题,这是我的工作:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
comp = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit) fromDate:targetDate];
[comp setWeekday:2];
NSDate *firstWeekDay = [gregorian dateFromComponents:comp];
如果2011年1月1日星期六是targetDate,则我日历中的firstWeekDay似乎是2011年12月26日星期一,但实际上应该是2010年12月26日星期一。我该怎么做呢?
最佳答案
要解决此问题,请在NSDateComponents中添加 NSYearForWeekOfYearCalendarUnit 。
前任:
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* comps = [calendar components:NSYearForWeekOfYearCalendarUnit |NSYearCalendarUnit|NSMonthCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit fromDate:curDate];
[comps setWeekday:2]; // 2: monday
firstDayOfTheWeek = [calendar dateFromComponents:comps];
[comps setWeekday:7]; // 7: saturday
lastDayOfTheWeek = [calendar dateFromComponents:comps];
关于objective-c - 使用NSDateComponents一周一周的第一天: changing year,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5349226/