プログラマメモ2 - programmer no memo2

年月日だけ今日にする 2012/05/04

Objective-Cです。日付処理です。いまいち要領得てないです。
uidatepickerを設定するときに今日の日付だけにして時と分は画面のままにしたいなーと思ったのですが、いまいちうまくできる方法がわかってないです。とりあえず、なんとかそれっぽいコードができたので。
下の画面の今日ボタンを押したときのロジックです。

つかったコード
{ unsigned unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit ; unsigned unitFlags2 = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; // デートピッカーから取得した値 NSDate *date = _datePicker.date; // 時分だけでNSDateComponentsを作成 NSDateComponents *comps = [[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar] components:unitFlags fromDate:date]; { // 作成したNSDateComponentsを今日の年月日にする NSDate *today = [NSDate date]; NSDateComponents *tmp = [[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar] components:unitFlags2 fromDate:today]; [comps setYear:tmp.year]; [comps setMonth:tmp.month]; [comps setDay:tmp.day]; } NSCalendar *calendar= [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; // NSDateComponentsからNSDateを作成 NSDate *toDate = [calendar dateFromComponents: comps]; // デートピッカーに設定 _datePicker.date = toDate; }

: