В настоящее время я записываю время между двумя событиями в десятичных минутах, используя:
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;
Проблема, с которой я сталкиваюсь, заключается в том, что я на самом деле получаю только время в секундах, а затем преобразую в десятичное числоминут.Итак, единственные значения, которые я получаю: 0.016663
(одна секунда в десятичных минутах), 0.033325
(две секунды в десятичных минутах), 0.049988
(три секунды в десятичных минутах) и т. Д. Я неполучать любые значения между ними.Есть ли способ, как я могу получить более точное время?Я проверил, есть ли у NSDateComponents
свойство millisecond
или еще много чего, но я не смог найти ни одного.
Спасибо!