3

日付ピッカーと 2 つのボタンがあります。そして、ボタンをクリックしたときに日付ピッカーの値をプログラムで設定したいと考えています。最初のボタンを押すと、日付ピッカーの値が今日の日付と 00:00:00: 時刻になり、2 番目のボタンを押すと、日付ピッカーの値が今日の日付と 23:59:59 時刻になります。

どうやってするか?

4

3 に答える 3

11

ボタンを押すと呼び出される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 を確認すると、さらに多くのことがわかります。

編集:カレンダーを現在のデフォルトのカレンダーに変更し、現在のカレンダーを初期化しました。

于 2012-10-28T07:58:36.370 に答える
2

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)
于 2016-07-11T16:53:51.567 に答える