2010-11-20 4 views

Répondre

2

Vos pas ici:

  • calendrier Instantiate
  • construire une date d'au 1er janvier de l'année
  • Ajouter le nombre de jours - 1 et construire une date avec cette
  • Obtenez le les composants qui vous intéressent

Voyez si la date que vous obtenez est basée sur 0 ou 1.

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 

NSDateComponents *comps = [[NSDateComponents alloc] init]; 
[comps setYear:theYear]; 
[comps setMonth:1]; 
[comps setDay:1]; 
NSDate *date = [gregorian dateFromComponents:comps]; 
[comps release]; 

NSDateComponents *compsToAdd = [[NSDateComponents alloc] init]; 
[comps setDay:theDay-1]; 

NSDate *finalDate = [gregorian dateByAddingComponents:compsToAdd date options:0]; 

[compsToAdd release] 

NSDateComponents *interestingComponents = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit) fromDate:finalDate]; 
NSInteger day = [interestingComponents day]; 
NSInteger month = [interestingComponents month]; 

[gregorian release]; 
0

Voir la méthode -dateByAddingComponents:toDate:options: de NSCalendar.