日付のデータを取り扱う - Objective-C プログラミング
PROGRAM
現在の日時までの経過秒数を取得する
NSDate クラスに用意されている timeIntervalSinceDate メソッドを利用することで、ある日時からある日時までの経過秒数を取得することが可能です。
例えば、ある時点の日時を "pastData" という名前の NSDate 型で記録していたとします。
このとき、その "pastDate" の時点から現在までの経過秒数を取得したい場合には、次のようにします。
// 過去の時点 (pastDate) から現時点までの経過秒数を取得します。
NSTimeInterval passedTime = [[NSDate date] timeIntervalSinceDate:pastDate];
timeIntervalSinceDate メソッドは、自分自身の日時から引数で指定された日時を引いた日時を経過秒数で返すため、ある時点から現在までの経過秒数を取得したい場合には、まず現在の日時を取得した後で、そのインスタンスの timeIntervalSinceDate の引数として、過去の時刻を渡す必要があります。
こうすることで、過去のある時点から現在までの経過秒数を NSTimeInterval 型で取得することが可能です。経過秒数は小数点数ですので、1.32 秒とか、そういった値が取得されています。
ここでは [NSDate date] までの経過時間を取得しましたが、もちろんここには任意の日付を指定することができるので、ある 2 つの日付間の経過秒数を取得することも可能です。
なお、過去のある時点を保存した NSDate 型のインスタンスに対して、それよりも先の日付を timeIntervalSinceDate の引数に渡すと、負の値で経過秒数が取得されます。
[ もどる ]