Iv 找到了使用 nscalender 显示任何工作日名称的方法..使用以下代码..只需从 xcode 菜单栏打开控制台即可查看结果。复制将以下代码粘贴到 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
因为我在 2/11/2010 上运行了这个程序,你将根据当前日期获得所需的输出。
同样,如果您想获得一周的第一个工作日,即星期一的日期,那么只需稍微修改代码:
改变 :[components setDay:([components day]-([components weekday]-1))];
至
[components setDay:([components day]-([components weekday]-2))];
获取该周的星期一日期..
同样,您可以尝试通过更改整数-1、-2 等来查找七个工作日中的任何一个的日期...
希望你的问题得到解答。。
谢谢,邦森迪亚斯