Xcode时间差,以天,小时,分钟和秒为单位

时间:2015-01-01 14:01:22

标签: xcode date time timer difference

首先:我想对读到这个的每个人说新年快乐!! 2015年5月对我们所有人来说都是美好的一年: - )。

我忙于制作计算两个日期之间时差的功能。更确切地说:给定时间和日期之间的时间与当前时间和日期之间的时间。 因此,用户选择过去的日期,然后程序在计时器中显示给定日期和今天日期之间的时差,如下所示:" hh:mm:ss"

当我选择今天的日期时间(01-01-2015 10:00:00),但选择过去的日期和时间(31-12-2014 17:00)时,它可以正常更新:00)并将它与今天比昨天(01-01-2015 14:01:01)更早的日期进行比较,它给我一个负面时间,就像一个倒数计时器:-2:-59:-59

但是我想让它显示出相反的结果:21:01:01如果可能的话,如果它超过了24:00:00,那么请指望。比如25:12:39。

这是计算差异的代码:

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd-MM-YYYY HH:mm:ss"];
NSDate *date1 = [df dateFromString:[NSString stringWithFormat:@"30-12-2014 %@", startedTime]];
NSDate *date2 = [df dateFromString:[NSString stringWithFormat:@"31-12-2014 %@", [self getCurrentTime]]];
NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];

int hours = (int)interval / 3600;             // integer division to get the hours part
int minutes = (interval - (hours*3600)) / 60; // interval minus hours part (in seconds) divided by 60 yields minutes
int seconds = (interval - (hours*3600) - (minutes*60)); // interval minus hours part (in seconds) divided by 60 yields minutes

NSString *timeDiff = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes, seconds];
_workingTime.text = [NSString stringWithFormat:@"%@",timeDiff];

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

[df setDateFormat:@"dd-MM-yyyy hh:mm:ss"];

尝试更改格式字符串后!

最后这个......

NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];
if( interval  < 0 ) {
  interval = [date1 timeIntervalSinceDate:date2];
}

More about date formats here