Instead of the loops that you have in your code you could use a predicate to filter out all the objects that are today. Filtering out what dates are today is done by comparing it to the beginning of today and the end of today.
You can set any NSDate to the beginning of that date like this (see this answer)
NSDate *beginDate = [NSDate date];
[[NSCalendar currentCalendar] rangeOfUnit:NSDayCalendarUnit startDate:&beginDate interval:NULL forDate:beginDate];
Then to get the end date you simply add one day to it. Don't add days by calculating the number of seconds. This won't work with daylight savings! Do it like this (also see this answer):
NSDateComponents *oneDay = [[NSDateComponents alloc] init];
[oneDay setDay:1];
// one day after begin date
NSDate *endDate = [[NSCalendar currentCalendar] dateByAddingComponents:oneDay toDate:beginDate options:0];
Now that you have the two dates that define the range for today you can filter all your DayViews using a NSPredicate to get a new array of all the DayViews who's day is today, like this (see this answer):
// filter DayViews to only include those where the day is today
NSArray *daysThatAreToday = [_days filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(date >= %@) AND (date <= %@)", beginDate, endDate]];
Now you can apply the tint color to all the DayViews by enumerating the new array (that contains todays DayViews)
[daysThatAreToday enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
// Set the tint color here...
}];
This, in my opinion, is a clean but more importantly a correct way of solving your problem. It reads clearly and handles daylight savings and other calendars then gregorian. It can also easily be reused if you want to tint all the DayViews for a certain week (or any other time period).