2013-07-09 3 views
1

Dans mon application, je montre, la liste des mois en mode tableau. Pour chaque mois, il y a peu d'événements pour certaines dates. Donc ma question est comment comparer les dates dans mon tableau avec les dates du mois pour montrer les événements dans leurs mois respectifs seulement.Comparer les dates d'un mois avec un tableau

+1

ce que vous avez essayé ?? S'il vous plaît montrer quelques exemples de code. –

Répondre

0

vous pouvez utiliser NSDateComponents pour que:

NSCalendar* calendar = [NSCalendar currentCalendar]; 
NSDateComponents* components = 
     [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:yourDate]; 

[components month];// gives you month 

Comparer ce mois-ci avec l'index de tableau par exemple ou d'une autre façon que vous préférez.

+0

ne pas oublier de comparer également l'année (pas seulement le mois) ou vous verrez des événements de janvier 11 avec jan '12. –

0

Dans votre cas, vous n'avez probablement qu'à comparer l'année et le mois de la date. Il y a probablement plusieurs façons de l'implémenter. C'est ce que j'aurais essayé. Convertissez votre date dans tableview au format yyyy-MM et aussi les dates de l'événement dans le même format probablement la manière donnée ci-dessous.

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; 
[dateFormatter1 setDateFormat:@"yyyy-MM"]; 
dateFormatter1.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
NSDate *monthDate=[NSDate date]; 
NSString *strMonthDate=[dateFormatter1 stringFromDate:monthDate]; 
NSLog(@"%@",strMonthDate); 

Comparez cette chaîne de monthDate avec votre chaîne de EVENTDATE en utilisant des méthodes de comparaison de NSString normales.

+0

Ceci est le format de la date dans le tableau 2013-07-23 00:00:00 +0000 –

+0

Utilisez le code ci-dessus juste remplacer monthDate avec votre propre date dans le tableau (Assurez-vous que son instance de NSDate) vous obtiendrez o/p 2013-07 en tant que chaîne. – Mahesh