NSDateの件
文字列からNSDateを生成
NSDateFormatter *f = [[[NSDateFormatter alloc] init] autorelease]; [f setDateFormat:@"yyyy-MM-dd"]; return [f dateFromString:string];
NSDateから曜日を取得
NSCalendarからNSDateComponentsを取得する
NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *c = [calendar components:NSWeekdayCalendarUnit fromDate:date]; return [c weekday];
weekdayは1から7までの数値。それぞれ、日曜日から土曜日に対応している。
上記例では、compontensにNSWeekdayCalendarUnitのみしか指定していない為、weekdayしか取得できない。
その他のプロパティ(year,month,day,hour,min,sec等)を取得する場合には、下記のようにする
NSDateComponents *c = [calendar components: NSYearCalendarUnit |NSMonthCalendarUnit |NSDayCalendarUnit |NSHourCalendarUnit |NSMinuteCalendarUnit |NSSecoundCalendarUnit |NSWeekdayCalendarUnit fromDate:date];
各CalendarUnitはXcodeが補完してくれる。それをビット演算子「|」で繋ぐ。
NSWeekdayCalendarUnitとNSWeekCalendarUnitは違うので注意。