I need to create a list of weeks by months, I tried to follow the codes, but I can not get the correct answer. One of them gives the correct solution for my next output:
NSDate *weekDate = [NSDate date];
NSCalendar *myCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *currentComps = [myCalendar components:( NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekOfMonthCalendarUnit| NSWeekdayCalendarUnit) fromDate:weekDate];
for (int i = 0; i <=10 ;i++)
{
[currentComps setWeekOfMonth:i];
[currentComps setWeekday:1];
NSDate *firstDayOfTheWeek = [myCalendar dateFromComponents:currentComps];
[currentComps setWeekday:7];
NSDate *lastDayOfTheWeek = [myCalendar dateFromComponents:currentComps];
NSDateFormatter *myDateFormatter = [[NSDateFormatter alloc] init];
myDateFormatter.dateFormat = @"'week' w dd/MM";
NSString *firstStr = [myDateFormatter stringFromDate:firstDayOfTheWeek];
NSString *secondStr = [myDateFormatter stringFromDate:lastDayOfTheWeek];
NSLog(@"first - %@ \nlast - %@", firstStr, secondStr);
}
I have this conclusion: first week 4 19/01 last week 4 25/01 first week 5 26/01 last week 5 01/02 first week 6 02/02 last week 6 08/02 first week 7 09/02 last week 7 15/02 first week 8 16/02 last week 8 22/02 first week 9 23/02 last - week 9 01/03 first week 10 02/03 last - week 10 08/03 first week 11 09/03 last week 11 15/03 first week 12 16/03 last - week 12 22/03 first week 13 23/03 last - week 13 29/03 first week 14 30/03 last week 14 05/04
, , , . ( 6 02/02
- 6 08/02), .