Skip to content →

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

PROFILE

入江 慎吾
教える、学べるオンラインメンターサービスMENTAの代表 / 2-30個のサービスをつくり、M&Aで億単位の売却 / 受託開発20年→受託をやめサービス開発に専念→個人開発でつくったMENTAがヒット→ランサーズグループにジョイン / YouTubeで「サービスづくりで生きていく」配信中 / 「自分のサービスで生きていく」をコンセプトに個人開発オンラインサロン「入江開発室」を運営(詳しいプロフィール)

SUBSCRIBE

メールマガジンに登録いただけると、ブログの新着記事をお知らせいたします。(励みにもなります!)また、YouTubeチャンネルでも個人開発・サービスについての情報を発信中です。

SPONSOR

Published in HACK 開発奮闘記