2011-07-15 3 views
0

J'ai un numéro de semaine dans int et je veux obtenir la première date (valeur NSDate) de cette semaine.Première date (NSDate) de la semaine donnée

Pour un exemple: Date de la première (dimanche) de la semaine 21 de 2011 est 2011-05-22

J'essaie avec NSCalendar, NSDateComponents pour y parvenir. Si quelqu'un sait comment y parvenir, apprécie vraiment votre aide.

+0

Montrer qu'avez-vous fait, alors nous serons en mesure de voir si cela possible avec moins de code * *. Mais l'utilisation de NSCalendar et NSDateComponents est juste pour cette tâche – Vladimir

+0

Vladimir, en fait j'essaie d'obtenir ce résultat, donc je n'ai pas de code complet. de toute façon je suis en train d'essayer et si je trouve je vais éditer ma question avec le code. – Viraj

Répondre

4

Essayez quelque chose comme:

NSDate *now = [NSDate date]; 
NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 
NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now]; 
[comp setWeekday:1]; 
[comp setWeek: 21]; 
NSDate *resultDate = [gregorian dateFromComponents:comp]; 
+0

Merci pour l'aide - le résultat est 2011-05-21 18:30:00 +0000 - 21 est samedi et il devrait être 22 n'est-ce pas? - Je cours sur le simulateur. – Viraj

+0

@Viraj, c'est parce que NSDate stocke la date dans le fuseau horaire GMT et lorsque vous l'imprimez NSLog prend en compte votre fuseau horaire local – Vladimir

+0

vous avez absolument raison. Merci pour l'aide. – Viraj

Questions connexes