我正在尝试获取计时器的总分钟数。我已经开始工作了。这是我获得“总秒数”的方式:
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"];
最佳答案
这为您提供了挂钟时间,而不是过去的时间(无论是什么时间单位)。
要计算经过时间,请在开始时以NSTimeInterval(秒数)的形式获取时间,然后在每次更新经过时间的显示时(包括完成时)再次获取时间。从较晚的时间减去较早的时间,结果将是经过的秒数。
您可以按重复的除法及其余数将其分为几天,几小时,几分钟和几秒钟。对于后者,请使用fmod
或remainder
函数(%
运算符不适用于浮点值)。将总秒数除以60.0得到分钟;剩余部分将是分钟后的秒数(例如,613 / 60
= 10分钟; fmod(613, 60)
= 13秒)。对总分钟数执行相同操作以获得小时数和分钟数。当然,对于几天来说,以24为除数可以做到数小时。
关于cocoa - 如何获取“总分钟数”(TIMER),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5772169/