如何获得“总分钟数”(TIMER)

时间:2011-04-24 17:47:07

标签: cocoa timer

我正在尝试获取计时器的总分钟数。我已经开始工作了几秒钟。以下是我获得“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"];

1 个答案:

答案 0 :(得分:1)

它可以为您提供挂钟时间,而不是已经过的时间(无论单位时间)。

要计算经过时间,请在开始时将时间作为NSTimeInterval(秒数),然后在每次更新经过时间的显示时(包括完成时)再次获取。从较晚的时间减去较早的时间,结果将是经过的秒数。

您可以通过重复划分和剩余部分将其分解为数天,数小时,分钟和秒。对于后者,请使用fmodremainder函数(%运算符不适用于浮点值)。将总秒数除以60.0得到分钟;剩余部分将是分钟后的秒数(例如,613 / 60 = 10分钟; fmod(613, 60) = 13秒)。获得相同的总分钟数来获得小时和分钟。当然,连续几天都是24小时作为除数。