Ivは、nscalenderを使用して平日の名前を表示する方法を見つけました。次のコードを使用します。xcodeメニューバーからコンソールを開いて結果を確認します。コピー次のコードをviewDidLoadメソッドに貼り付けて、週の最初の日を取得します。
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy :EEEE"];
NSString *dateString = [dateFormat stringFromDate:today];
NSLog(@"date: %@", dateString);
[dateFormat release];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today];
[components setDay:([components day]-([components weekday]-1))];
NSDate *beginningOfWeek = [gregorian dateFromComponents:components];
NSDateFormatter *dateFormat_first = [[NSDateFormatter alloc] init];
[dateFormat_first setDateFormat:@"MM/dd/yyyy :EEEE"];
NSString *dateString_first = [dateFormat_first stringFromDate:beginningOfWeek];
NSLog(@"First_date: %@", dateString_first);
出力は次のようになります。
date: 02/11/2010 :Thursday
First_date: 02/07/2010 :Sunday
2010年2月11日にこのプログラムを実行したので、現在の日付に応じて希望の出力が得られます。
同様に、週の最初の営業日、つまり月曜日の日付を取得したい場合は、コードを少し変更するだけです。
変化する :[components setDay:([components day]-([components weekday]-1))];
に
[components setDay:([components day]-([components weekday]-2))];
その週の月曜日の日付を取得します。
同様に、uは整数-1、-2などを変更することにより、7営業日のいずれかの日付を見つけようとすることができます...
あなたの質問が答えられることを願っています。
ありがとう、ボンソンディアス