Frage

Ich habe folgendes Problem:. Ich brauche einen NSMutabeArray mit jedem Wochentag nach einem bestimmten Datum erstellen

Dies sollte wie folgt aussehen:

  • Donnerstag 28. Oktober 2010
  • Donnerstag 4. Oktober 2010
  • Donnerstag 11. Oktober 2010
  • ...

Wie kann ich das tun? Ich denke, es hat etwas mit NSCalendar zu tun hat, aber ich kann nicht die richtige Lösung finden ... Können Sie mir helfen?

Vielen Dank im Voraus

FFraenz

War es hilfreich?

Lösung

Das ist eine unendliche Reihe; ein NSMutableArray kann nur eine endliche Menge halten.

Auf jeden Fall müssen Sie nur ein einziges Mitglied der Serie, wie 2010-10-28. Um den Donnerstag danach zu bekommen, eine Woche hinzuzufügen. Um das dritte Datum in der Serie zu bekommen, eine Woche nach dem zweiten Termine hinzuzufügen, oder zwei Wochen zum ersten Termine. mit Zugang zu jedem anderen Mitglied der Serie bietet Ihnen jedes Mitglied der Serie hat.

Wenn Sie von einem Zeitpunkt beginnen, die nicht der richtige Wochentag ist, erhält die aktuellen Komponenten für dieses Datum, fügen Sie den Unterschied zwischen dem richtigen Wochentag und dem Wochentag es seinem Tag des Monats, und wandelt das geänderte Datum Komponenten zu einem Zeitpunkt zurück. Das Datum wird dann in der gleichen Woche auf dem gewünschten Wochentag sein.

Andere Tipps

Ist-Datum haben:

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

eine Woche hinzuzufügen:

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

Dann können Sie durchlaufen und Ihre Array erstellen:

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];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top