0

次の問題があります。特定の日付以降、平日ごとに NSMutabeArray を作成する必要があります。

これは次のようになります。

  • 2010 年 10 月 28 日木曜日
  • 2010 年 10 月 4 日木曜日
  • 2010 年 10 月 11 日木曜日
  • ...

どうやってやるの?NSCalendar と関係があると思いますが、適切な解決策が見つかりません... 助けてもらえますか?

前もって感謝します

Fフランツ

4

2 に答える 2

0

これは無限級数です。NSMutableArray は有限のコレクションしか保持できません。

とにかく、2010-10-28 など、シリーズの 1 つのメンバーだけが必要です。その後の木曜日を取得するには、1 週間追加します。シリーズの 3 番目の日付を取得するには、2 番目の日付に 1 週​​間、または最初の日付に 2 週間を追加します。シリーズのメンバーがいると、シリーズの他のメンバーにアクセスできます。

正しい曜日ではない日付から開始している場合は、その日付の日付コンポーネントを取得し、正しい曜日とその曜日の差をその月の日に追加し、修正された日付コンポーネントを元の日付に変換します。デート。その日付は、同じ週の目的の平日になります。

于 2010-10-28T15:18:42.097 に答える
0

実際の日付を取得するには:

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

週を追加するには:

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

次に、配列を反復して作成できます。

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];
于 2010-10-28T14:45:34.350 に答える