重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

iPhoneのアプリ制作のため勉強しているのですが

DatePickerにて下記のように現在時刻を設定した場合
NSDate *today = [[[NSDate alloc] init] autorelease];
[datePicker setDate:today];

DatePickerを5分間隔に設定していると
現在時刻が13時41分だと、DatePickerには13時40分と
表示されるのですが、[datePicker date]で値を取得すると
13時41分を取得します。

DatePickerの値を変更すると、表示されている時刻を
取得できるのですが、初回のみ上記のような状態です。

最初から表示されている値を取得するには
どのような方法があるのでしょうか?

良い方法をご存知の方、回答よろしくお願いいたします。

A 回答 (1件)

試してみたら、私の環境でも言われたような挙動を示しました。


UIDatePickerはタッチパネルからのイベント受信では設定した刻みでdateを格納しますが、コード側からNSDateを渡すと補正はされないみたいです。一発で解決するような便利なメソッドも見あたりませんね。渡すNSDateを一手間かけて5分刻みに加工してはどうでしょうか?
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ございません。
調査までしていただき、ありがとうございました。
結局は
NSTimeInterval interval = [today timeIntervalSince1970];
interval = floor(interval / 300.0) * 300.0 ;
[dayPicker setDate:[NSDate dateWithTimeIntervalSince1970:interval]];
このようなコードで5分未満の値を切り捨てて設定できました。

お礼日時:2009/08/26 17:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!