日付ピッカーと 2 つのボタンがあります。そして、ボタンをクリックしたときに日付ピッカーの値をプログラムで設定したいと考えています。最初のボタンを押すと、日付ピッカーの値が今日の日付と 00:00:00: 時刻になり、2 番目のボタンを押すと、日付ピッカーの値が今日の日付と 23:59:59 時刻になります。
どうやってするか?
日付ピッカーと 2 つのボタンがあります。そして、ボタンをクリックしたときに日付ピッカーの値をプログラムで設定したいと考えています。最初のボタンを押すと、日付ピッカーの値が今日の日付と 00:00:00: 時刻になり、2 番目のボタンを押すと、日付ピッカーの値が今日の日付と 23:59:59 時刻になります。
どうやってするか?
ボタンを押すと呼び出される2つの関数をすでに追加していると仮定すると、次のようなものが必要です。
-(IBAction)beginPressed:(id)sender
{
NSDate * now = [[NSDate alloc] init];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents * comps = [cal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
NSDate * date = [cal dateFromComponents:comps];
[self.datePicker setDate:date animated:TRUE];
}
-(IBAction)endPressed:(id)sender
{
NSDate * now = [[NSDate alloc] init];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents * comps = [cal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];
[comps setHour:23];
[comps setMinute:59];
[comps setSecond:59];
NSDate * date = [cal dateFromComponents:comps];
[self.datePicker setDate:date animated:TRUE];
}
コンポーネントを設定する部分がわかりにくかったと思います。上記のクラスの API を確認すると、さらに多くのことがわかります。
編集:カレンダーを現在のデフォルトのカレンダーに変更し、現在のカレンダーを初期化しました。
Swiftでこれを行う方法を知りたい人のために:
let now = NSDate()
let cal = NSCalendar.currentCalendar()
let comp = cal.components([.Year, .Month, .Day], fromDate: now)
comp.hour = 0 // or whatever you need
comp.minute = 0
let date = cal.dateFromComponents(comp)!
picker.setDate(date, animated: true)