Domanda

Ho seguente problema:. Ho bisogno di creare un NSMutabeArray con ogni giorno feriale dopo una data specifica

Questo dovrebbe essere simile:

  • Giovedi 28 Ottobre, 2010
  • Giovedi 4 ottobre 2010
  • Giovedi 11 ottobre 2010
  • ...

Come posso fare questo? Penso che abbia qualcosa a che fare con NSCalendar, ma non riesco a trovare la giusta soluzione ... Potresti aiutarmi?

Grazie in anticipo

FFraenz

È stato utile?

Soluzione

Questa è una serie infinita; un NSMutableArray può contenere solo una collezione finita.

In ogni caso, è necessario solo un singolo membro della serie, come ad esempio 2010-10-28. Per ottenere il Giovedi dopo che, di una settimana. Per ottenere il terzo appuntamento della serie, aggiungi una settimana per la seconda data, o due settimane per la prima data. Avere qualsiasi membro della serie che fornisce l'accesso a qualsiasi altro membro della serie.

Se si parte da una data che non è il giorno della settimana giusta, ottenere i componenti della data per quella data, aggiungere la differenza tra il giorno della settimana corretto e il giorno della settimana che ha al suo giorno del mese, e convertire la data modificata componenti a una data. Tale data sarà quindi il giorno della settimana desiderato nella stessa settimana.

Altri suggerimenti

Per avere data effettiva:

NSDate *today = [[NSDate alloc] init];

Per aggiungere una settimana:

NSDate *nextDate = [today dateByAddingTimeInterval:60*60*24*7];

Quindi è possibile scorrere e creare l'array:

NSMutableArray* dates = [[NSMutableArray alloc] init];
NSDate *date= [[NSDate alloc] init];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setWeek:1];

for (int i=0;i<10;i++) {
  NSDate *nextDate = [gregorian dateByAddingComponents:offsetComponents toDate:date options:0];
  [dates addObject:date];
  [date release];
  date = nextDate;
}
[date release];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top