基準日が与えられると、次の「水曜日」を見つける必要があります。
明確にするために、参照日が火曜日の場合、同じ週の水曜日を返す必要があります。
基準日が水曜日以降の場合は、翌週から翌水曜日を返却する必要があります。
参照日を過ぎた水曜日を返さないことが重要です。
私は使用を検討してきましたがNSDateComponents
、常に将来でなければならない次の曜日を取得する方法がわかりません。
これは私がこれまでに持っているものです:
NSDate *referenceDate = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [calendar components:(NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:referenceDate];
[dateComponents setWeekday:4]; // Wednesday
NSDate *followingWednesday = [calendar dateFromComponents:dateComponents];
このコードは、同じ週の過去の水曜日と次の水曜日を区別しませんが、私の問題があります。
今週の日付と来週の日付の 2 つの日付を生成し、if ステートメントを使用してどちらが将来のものかを確認できることはわかっていますが、これは単純なことを行うには多くのコードのように思えます。
より良い方法はありますか?
どんな助けでも大歓迎です。
アップデート
dateComponents:
平日を設定しても、実際にはNSCalendarのメソッドで返される日付には影響しないようです。上記のコード例は、曜日の設定に関係なく同じ日付を返します。
だから今、私はもっと困惑しています。