四中走出来显示使用nscalender..using下面的代码中的任何工作日名称.. 刚刚从Xcode的菜单栏打开控制台看到results.Copy在viewDidLoad方法下面的代码粘贴方式获得一周的第一天
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy :EEEE"];
NSString *dateString = [dateFormat stringFromDate:today];
NSLog(@"date: %@", dateString);
[dateFormat release];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today];
[components setDay:([components day]-([components weekday]-1))];
NSDate *beginningOfWeek = [gregorian dateFromComponents:components];
NSDateFormatter *dateFormat_first = [[NSDateFormatter alloc] init];
[dateFormat_first setDateFormat:@"MM/dd/yyyy :EEEE"];
NSString *dateString_first = [dateFormat_first stringFromDate:beginningOfWeek];
NSLog(@"First_date: %@", dateString_first);
输出将是:
date: 02/11/2010 :Thursday
First_date: 02/07/2010 :Sunday
,因为我曾在2010年2月11日运行此程序U将得到所需的输出去等待当前日期。
同样,如果你想得到我第一周的第一个工作日。Ë周一的日期,那么只需修改一下代码:
CHANGE:[components setDay:([components day]-([components weekday]-1))];
TO [components setDay:([components day]-([components weekday]-2))];
获得该周星期一日期..
同样ü可以尝试找到日期七个工作日中的任何一个通过更改整数-1,-2等...
希望你的问题得到解答..
谢谢, Bonson Dias
那么你有没有发现任何解决办法了吗?我也同样感到震惊! – 2010-10-04 11:59:51
默认情况下,ISO 8601日历的第一个工作日设置为星期一。 – 2014-07-25 13:53:34