Search code examples
iosobjective-cnsmutablearraynsarraynsdate

How to get NSMutableArray specific objects


I want to this array list bellow Sunday and Monday text object get and save in another array. other words Get object with date and week day name both are get and save in array

Please help how can I do this. i am so tried but do not get correct answer.

   NSDateComponents *components;
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd-MM-yyyy"];

NSDate *startDate = [dateFormat dateFromString:@"25-11-2016"];
NSDate *endDate = [dateFormat dateFromString:@"7-12-2016"];

[dateFormat setDateFormat:@"dd-MM-yyyy, EEEE"];

components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit fromDate:startDate toDate:endDate options:0];

int days = [components day];



for (int x = 0; x <= days; x++) {
    [mutable_ary addObject:[dateFormat stringFromDate:startDate]];
    NSLog(@"%@",[dateFormat stringFromDate:startDate]);

     startDate = [startDate dateByAddingTimeInterval:(60 * 60 * 24)];

}
NSLog(@"%@",mutable_ary);

{
"25-11-2016, Friday",
"26-11-2016, Saturday",
"27-11-2016, Sunday",
"28-11-2016, Monday",
"29-11-2016, Tuesday",
"30-11-2016, Wednesday",
"01-12-2016, Thursday",
"02-12-2016, Friday",
"03-12-2016, Saturday",
"04-12-2016, Sunday",
"05-12-2016, Monday",
"06-12-2016, Tuesday",
"07-12-2016, Wednesday"
 }

Output:

 {

"27-11-2016, Sunday",
"28-11-2016, Monday",
"04-12-2016, Sunday",
"05-12-2016, Monday",
 }

Solution

  • Try this:

    NSMutableArray *arrList = [[NSMutableArray alloc]initWithObjects:@"25-11-2016, Friday",
                               @"26-11-2016, Saturday",
                               @"27-11-2016, Sunday",
                               @"28-11-2016, Monday",
                               @"29-11-2016, Tuesday",
                               @"30-11-2016, Wednesday",
                               @"01-12-2016, Thursday",
                               @"02-12-2016, Friday",
                               @"03-12-2016, Saturday",
                               @"04-12-2016, Sunday",
                               @"05-12-2016, Monday",
                               @"06-12-2016, Tuesday",
                               @"07-12-2016, Wednesday", nil];
    
    NSMutableArray *result = [[NSMutableArray alloc]init];
    for (id element in  arrList){
        NSString *str = element;
        if ([str containsString:@"Monday"] || [str containsString:@"Sunday"]){
            [result addObject:element];
        }
    }
    
    // print result
    NSLog(@"%@",result);