我得到了一个 NSDate,例如 1/6 -12(星期五),并试图找出它是星期几。我的一周从星期一开始,所以星期五应该是工作日 5。
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[calendar setFirstWeekday:2];
NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:firstOfJulyDate];
NSLog(@"weekday %i",components.weekday);
输出:工作日 6
无论我将 setFirstWeekday 设置为什么,输出始终为 6。 我做错了什么?
最佳答案
尝试做这样的事情:
NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
[gregorian setFirstWeekday:2]; // Sunday == 1, Saturday == 7
NSUInteger adjustedWeekdayOrdinal = [gregorian ordinalityOfUnit:NSWeekdayCalendarUnit inUnit:NSWeekCalendarUnit forDate:[NSDate date]];
NSLog(@"Adjusted weekday ordinal: %d", adjustedWeekdayOrdinal);
关于objective-c - NSDateComponents 工作日不显示正确的工作日?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11019761/