Rom*_*man 13 cocoa objective-c nsdatecomponents
您好我设置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-01-01周六是targetDate,我日历中的第一周周日似乎是2011-12-26周一,但实际上应该是2010-12-26周一.我怎么能做对的?
Yve*_*sot 35
要解决此问题,请在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];
尝试这个
// adjust them for first day of previous week (Monday)
[comp setWeekday:2];
[comp setWeek:([comp week] - 1)];
请注意,此解决方案假设一周的第一天是星期一。
| 归档时间: | 
 | 
| 查看次数: | 9671 次 | 
| 最近记录: |