質問

%H%M%S(E.G.161500)の形式で2つの時間値を取得しました

これらの値はテキストベースの整数です。

Cocoaには、60秒および分スケールを使用してこれら2つの整数の差を計算する単純な関数がありますか?

その場合

time 1 = 161500
time 2 = 171500

timedifference = 003000
役に立ちましたか?

解決

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"HHmmss"];

NSDate *date1 = [dateFormatter dateFromString:@"161500"];
NSDate *date2 = [dateFormatter dateFromString:@"171500"];

NSTimeInterval diff = [date2 timeIntervalSinceDate:date1]; // diff = 3600.0

他のヒント

日付を操作するためのクラスはNSDateです。時間間隔を取得する方法は-timeIntervalSinceDate:です。結果はNSTimeInterval値です。これは、間隔を秒単位で表すdoubleです。

日付が 2001-03-24 10:45:32 +0600 としてフォーマットされている場合、NSStringから+dateWithString:を使用して<=>オブジェクトを作成できます。

このコードを試してください。

- (NSTimeInterval)intervalBetweenDate:(NSDate *)dt1 andDate:(NSDate *)dt2 {

NSTimeInterval interval = [dt2 timeIntervalSinceDate:dt1];
NSLog(@"%f",interval);
return interval;

}

NS NSNumberでラップされたNSTimeInterval(秒を表すdouble)として、合計秒数を返すようにします。そこから簡単に差を引き、作成した同じNSFormatterクラスを使用して表示することができます。値の解析と表示の両方で、秒から時間:分:秒または任意の形式に変換するコードを記述する責任があります。また、アプリケーションにとって意味がある場合は、これらの値をmouvicielのようなNSDateに変換することもできます。通常、1970年1月1日(NSDateにはこれを行うためのメソッドがあります)の基準日との時差を常に保存することに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top