2012-07-28 97 views
1

我该如何获得本周的一系列日子?
例如 - 今天是saturday - 28 july
我需要''28星期六',27 Friday,26 Thursday,25 Wednesday ... 22 Sunday如何获得本周的日子?

[code] NSCalendar * myCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *currentComps = [myCalendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekOfYearCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:weekDate]; 
int ff = currentComps.weekOfYear; 
NSLog(@"1 %d", ff); 

[currentComps setWeekday:1]; // 1: sunday 
NSDate *firstDayOfTheWeek = [myCalendar dateFromComponents:currentComps]; 
[currentComps setWeekday:7]; // 7: saturday 
NSDate *lastDayOfTheWeek = [myCalendar dateFromComponents:currentComps]; 

NSLog(@"first - %@ \nlast - %@", firstDayOfTheWeek, lastDayOfTheWeek); [code] 

我这样做,但我有 'Firstdayofweek可' - 2012-07-29和 'lastDayOfWeek' - 2012-08-04

+2

只是一个好奇的问题:为什么你本周从星期五开始?为什么它会下降(下降)?你来自符拉迪沃斯托克吗? :)) – 2012-07-28 12:02:21

+3

亚瑟,这是问题的本质表明你没有做任何努力来解决这个问题自己。你不希望这里的人为你做所有的工作,是吗?请告诉我们你到目前为止所做的尝试,我相信人们会很乐意提供帮助,包括我在内。 – Stavash 2012-07-28 12:02:23

+0

我同意@Stavash,这应该相当简单,只需在Google上搜索此代码即可找到很多示例代码。 – runmad 2012-07-28 16:52:53

回答

5

这里是你在找什么 - 你只需要格式化结果相应:

NSDate *weekDate = [NSDate date]; 
NSCalendar *myCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 

NSDateComponents *currentComps = [myCalendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekOfYearCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:weekDate]; 
int ff = currentComps.weekOfYear; 
NSLog(@"1 %d", ff); 

[currentComps setWeekday:1]; // 1: sunday 
NSDate *firstDayOfTheWeek = [myCalendar dateFromComponents:currentComps]; 
[currentComps setWeekday:7]; // 7: saturday 
NSDate *lastDayOfTheWeek = [myCalendar dateFromComponents:currentComps]; 

NSDateFormatter *myDateFormatter = [[NSDateFormatter alloc] init]; 
myDateFormatter.dateFormat = @"dd EEEE"; 
NSString *firstStr = [myDateFormatter stringFromDate:firstDayOfTheWeek]; 
NSString *secondStr = [myDateFormatter stringFromDate:lastDayOfTheWeek]; 

NSLog(@"first - %@ \nlast - %@", firstStr, secondStr); 
+0

无视内存管理,我假设了ARC – Stavash 2012-07-28 17:20:44

相关问题