NSDateで時間の差分を求めるには

今回はNSDateで時間の差分を求める方法です。例えば、無料アプリでポイントがあって、数時間たったら、ポイントを増やしたい。こんな時に、前回のアプリ起動時間と今回の起動時間を比較して、何時間経ったか調べることが出来ます。
まずは、アプリを起動した時の時間をNSUserDefaultsで記録しておきます。
//現在時刻を保存 NSDate* date = [NSDate date]; [[NSUserDefaults standardUserDefaults] setObject:date forKey:@"cdate"];
後は、再び起動したタイミングで時間を比較します。
NSDate *now = [NSDate date]; float tmp= [now timeIntervalSinceDate:[[NSUserDefaults standardUserDefaults] objectForKey:@"cdate"]]; //差分をfloatで取得 int hh = (int)(tmp / 3600); int mm = (int)((tmp-hh) / 60); float ss = tmp -(float)(hh*3600+mm*60); //3時間経っていれば if(hh>3){ //必要な処理を書き足してください } NSLog(@"%02d:%02d:%05.2f",hh,mm,ss);
SHARE
無料メルマガ<特典付き>
個人開発・ビジネスについての有益な情報を無料メルマガでお届けします。
個人開発のスキルアップにMENTA
MENTAはいろんなプロに相談できるNo1メンターサービスです。
僕自身もプロダクトの壁打ち・相談にのっています。個人開発でもコードレビュー、セキュリティ面のチェック、デザイン、広告、コンテンツマーケ、SNS集客について相談する、など使えます。
YouTubeでも個人開発ノウハウを発信中!
PROFILE

入江 慎吾
あらゆるスキルが学べるパーソナルメンターサービスMENTAの代表/個人開発が好きでこれまでに30個ほどのWEBサービスやアプリを作ってきました/福岡のWEB制作会社勤務→フリーランスエンジニア→法人立ち上げ→M&A億単位の売却を経験。 (詳しいプロフィール)
あらゆるスキルが学べるパーソナルメンターサービスMENTAの代表/個人開発が好きでこれまでに30個ほどのWEBサービスやアプリを作ってきました/福岡のWEB制作会社勤務→フリーランスエンジニア→法人立ち上げ→M&A億単位の売却を経験。 (詳しいプロフィール)