NSDate* 変数 = [《NSDate*》 dateByAddingTimeInterval:《NSTimeInterval》 ];引数に時間の長さを示す「NSTimeInterval」という値を指定すると、そのNSDateから指定の時間経過後の日時を示すNSDateを返します。このNSTimeIntervalというのは、実はただのdouble値で、「秒数」を示す値です。例えば1日なら、60秒×60分×24時間=86400になります。
NSDate* date = [NSDate date];例えば、これは今日から1000日後の日付を求める例です。NSTimeIntervalには60 * 60 * 24 * 1000の値を設定し、これをdateByAddingTimeInterval:で加算します。非常に簡単ですね。
NSTimeInterval t = 60 * 60 * 24 * 1000; // 1000日
NSDate* date2 = [date dateByAddingTimeInterval:t];
NSLog(@"%@",date2);
NSTimeInterval 変数 = [《NSDate*》 timeIntervalSinceDate:《NSDate*》];これで、2つの日時の経過秒数がNSTimeIntervalで得られます。このNSTimeIntervalは、実はただのdoubleですから、そのまま1日の秒数で割り算すれば、日数が得られる、というわけです。
NSDate* date = [NSDate date];例えば、これは2001年元旦から今日までの日数を計算するものです。ここでは、今日のほうが大きい値(後の日付)なので結果は正の値になりますが、昔の日時から最近の日時を引き算すれば結果はマイナスになりますので注意しましょう。
NSDate* date2 = [NSDate
dateWithNaturalLanguageString:@"2001/1/1"];
NSTimeInterval t = [date
timeIntervalSinceDate:date2];
NSInteger days = (int)(t / (60 * 60 * 24));
NSLog(@"%ld days.",days);
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※今日から1000日後を計算する int main (int argc, const char * argv[]) { @autoreleasepool { NSDate* date = [NSDate date]; NSTimeInterval t = 60 * 60 * 24 * 1000; // 1000日 NSDate* date2 = [date dateByAddingTimeInterval:t]; NSLog(@"%@",date2); } return 0; } ※2001年元旦から今日までの日数を計算する int main (int argc, const char * argv[]) { @autoreleasepool { NSDate* date = [NSDate date]; NSDate* date2 = [NSDate dateWithNaturalLanguageString:@"2001/1/1"]; NSTimeInterval t = [date timeIntervalSinceDate:date2]; NSInteger days = (int)(t / (60 * 60 * 24)); NSLog(@"%ld days.",days); } return 0; }
<< 前へ | 次へ >> |