環境:X-CODE Version 4.5.1


プロフィール入力の画面で、dateピッカーを使うことになったわけだけど、
dateピッカーの表示範囲の設定に、

dateWithTimeIntervalSinceNow

をつかったのですリラックマ

これがくせもので、

うちは孫がおばーちゃんに教えるだろうという微笑ましい図を想像して、
90歳ぐらいまで登録できるようにしたかったから、
[NSDate dateWithTimeIntervalSinceNow:86400*365*(-90)]

にminimumDateを設定したのねn.g.

ピッカー表示すると、設定範囲外はグレーになって選択できなくなるはずなのに、
なぜか選択しほうだい。

ためしに 3歳までに設定すると、うまくいく。

なぜ?なぜなの???


ネットでも見つからないし、すっきりしないので、ここで実験タイム手

10歳から90歳まで10歳ずつあげてってログだしてみた。

そしてみつけましたよ。。。
だめになる境目はここ。

// NSLog(@"minimumDate = %@",[NSDate dateWithTimeIntervalSinceNow:86400*365*(-68)]);
minimumDate = 1945-07-08 13:59:50 +0000

// NSLog(@"minimumDate = %@",[NSDate dateWithTimeIntervalSinceNow:86400*365*(-69)]);
minimumDate = 2080-08-13 13:59:50 +0000

// NSLog(@"minimumDate = %@",[NSDate dateWithTimeIntervalSinceNow:86400*365*(-70)]);
minimumDate = 2079-08-14 13:59:50 +0000


2080年て。。。
これほんとにgoogleさんで見つからなかったからなぜかわからないけど、
なぜかsinceNowだと68年前までしか使えないらしいungry

もちろん日付指定すれば100年前でもできますあひる

NSDateFormatter *inputDateFormatter = [[NSDateFormatter allocinit];

        [inputDateFormatter setDateFormat:@"yyyy/MM/dd HH:mm:ss"];

        NSDate *targetDate = [inputDateFormatter dateFromString:@"1900/03/01 00:00:00"];

けど、日付指定するのもなんだかしっくりこなかったし、
ティーン向けのアプリなのもあって、
泣く泣く68歳までにした。。354354


アップルひどい。。
なんなの68歳ってゆう境目ううっ...
おばーちゃんにはサバをよんでもらうしかないなこれ。



キーワード:
objective-c UIDatePicker dateWithTimeIntervalSinceNow 最大 最小 限界 日付ピッカー NSDate 68