2013年6月14日金曜日

NSDateで経過時間を取得する

NSDateを使用して経過時間を取得する方法をメモで。

やり方

① 現在時刻を保存

NSDate *date = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:date forKey:date];
NSDateクラスを使い現在時刻を取得し、NSUserDefaultsクラスでそれを保存します。

② 経過時間を取得

① からの経過時間を取得します。
NSDate *now = [NSDate date];  // (1)

/* 差分をfloatで取得します */
float tmp= [now timeIntervalSinceDate:[[NSUserDefaults standardUserDefaults] objectForKey:date]];  // (2)
int hh = (int)(tmp / 3600);
int mm = (int)((tmp-hh) / 60);
float ss = tmp - (float)(hh*3600+mm*60);

/* 10分経ってれば */
if(mm >= 10){  // (3)
    NSLog(@"10分たたよー");
}

NSLog(@"%02d:%02d:%05.2f", hh, mm, ss);
}
(1) まず①で取得していた時刻と比較するために、②実行の際の時刻を取得します。
(2) 上記(1)で取得した時刻と①で取得した時刻の差を取得します。
(3) 取得した時刻の差を使い色々弄ります。

おわり

①、②はそれぞれメソッドで囲うと使いやすいと思いますし、説明もそんな感じでしました。

関連記事

[Tips]NSDateで時間の差分を求めるには - PLUS

0 件のコメント:

コメントを投稿