現在、次を使用して、2 つのイベント間の時間を 10 進数で記録しています。
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendarUnit unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDate *date = [NSDate date];
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:date];
CGFloat hour = [dateComponents hour];
CGFloat minute = [dateComponents minute];
CGFloat second = [dateComponents second];
//set start time in decimal minutes
CGFloat startTime = ((hour*3600.0)+(minute*60.0)+(second))*.016666;
//do work...
//set end time in decimal minutes
CGFloat endTime = ((hour*3600.0)+(minute*60.0)+(second))*.016666;
//calculate time elapsed in decimal minutes
CGFloat totalTime = endTime-startTime;
私が抱えている問題は、実際には時間を秒単位で取得してから、10 進数の分に変換していることです。したがって、取得している値は0.016663(10 進分で 1秒)、 0.033325(10 進分で 2 秒)、 0.049988(10 進分で 3 秒) などだけです。間に値はありません。より正確な時間を取得する方法はありますか? NSDateComponentsプロパティがあるかどうかを確認しましたmillisecondが、何も見つかりませんでした。
ありがとう!