目前我正在使用十进制分钟记录两个事件之间的时间:
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
或其他东西,但我找不到任何东西。
谢谢!