我正在尝试获取计时器的总分钟数。我已经开始工作了几秒钟。以下是我获得“Total Seconds”的方法:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [gregorian components:(NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:time];
NSInteger hour = [comps hour];
NSInteger minute = [comps minute];
NSLog(@"Hour:%i", hour);
NSLog(@"minute:%i", minute);
NSInteger secs =hour * 60 * 60 + minute * 60;
NSNumber *elapsedSeconds = [[NSNumber alloc] initWithInt:secs];
NSDictionary *myDict = [NSDictionary dictionaryWithObject:elapsedSeconds forKey:@"TotalSeconds"];
答案 0 :(得分:1)
它可以为您提供挂钟时间,而不是已经过的时间(无论单位时间)。
要计算经过时间,请在开始时将时间作为NSTimeInterval(秒数),然后在每次更新经过时间的显示时(包括完成时)再次获取。从较晚的时间减去较早的时间,结果将是经过的秒数。
您可以通过重复划分和剩余部分将其分解为数天,数小时,分钟和秒。对于后者,请使用fmod
或remainder
函数(%
运算符不适用于浮点值)。将总秒数除以60.0得到分钟;剩余部分将是分钟后的秒数(例如,613 / 60
= 10分钟; fmod(613, 60)
= 13秒)。获得相同的总分钟数来获得小时和分钟。当然,连续几天都是24小时作为除数。