如何计算hr:min:sec的时间

时间:2010-07-02 13:14:00

标签: iphone objective-c

有人可以帮助我从时间计算中以hr:min:sec的形式。但我确实需要系统时间。这是因为我制作了这段代码

我尝试以hr:min:sec的形式进行时间计算 但它不能以正确的方式工作(它工作到一个小时)& ((1)60秒输出后0:1:60(2)后61秒输出为0:1:71(3)之后3600秒输出为1:1:00但是(3)之后3601秒输出错误)

以下是代码:

在.m文件中

-(IBAction)start
{      
    timer1 = [NSTimer scheduledTimerWithTimeInterval:(.01) target:self selector:@selector(timepassed) userInfo:nil repeats:YES];        
}

-(void)timepassed
{
     counter++;
    if(sec==60)
        sec=0;
    else 
        sec=counter/100;

    if(min==60)
        min=0;
    else 
        min=sec/60;

    if(hr==24)
        hr=0;
    else 
        hr=min/60;

    m1++;
    NSString *l=[NSString stringWithFormat:@"%i:%i:%i",hr,min,sec];

    [m setText:l];
}

1 个答案:

答案 0 :(得分:2)

-(void) timepassed
{
    counter++;
    if (counter == 60)  { secs++; counter = 0; }
    if (secs == 60) { min++; secs = 0; }
    if (min == 60) { hr++; min = 0; }

    // Your usual output here
}

请记住,这会将计数器变量设置为与您的代码不同,即它仅存储距离0 ... 99的1/100秒。

有很多算法可以将时间翻译成小时:分钟:秒,这只是其中一个与你的代码相似的算法。

附注:请接受对您有帮助的答案(也包括您的旧问题),这是此网站上的常见行为,让人们有动力为您提供帮助。