次の問題があります。特定の日付以降、平日ごとに NSMutabeArray を作成する必要があります。
これは次のようになります。
- 2010 年 10 月 28 日木曜日
- 2010 年 10 月 4 日木曜日
- 2010 年 10 月 11 日木曜日
- ...
どうやってやるの?NSCalendar と関係があると思いますが、適切な解決策が見つかりません... 助けてもらえますか?
前もって感謝します
Fフランツ
次の問題があります。特定の日付以降、平日ごとに NSMutabeArray を作成する必要があります。
これは次のようになります。
どうやってやるの?NSCalendar と関係があると思いますが、適切な解決策が見つかりません... 助けてもらえますか?
前もって感謝します
Fフランツ
これは無限級数です。NSMutableArray は有限のコレクションしか保持できません。
とにかく、2010-10-28 など、シリーズの 1 つのメンバーだけが必要です。その後の木曜日を取得するには、1 週間追加します。シリーズの 3 番目の日付を取得するには、2 番目の日付に 1 週間、または最初の日付に 2 週間を追加します。シリーズのメンバーがいると、シリーズの他のメンバーにアクセスできます。
正しい曜日ではない日付から開始している場合は、その日付の日付コンポーネントを取得し、正しい曜日とその曜日の差をその月の日に追加し、修正された日付コンポーネントを元の日付に変換します。デート。その日付は、同じ週の目的の平日になります。
実際の日付を取得するには:
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];