如何计算中午时间间隔?

时间:2011-10-06 09:12:28

标签: iphone

如何计算iphone开发中的中午时间间隔?

我正在研究股票市场应用,我需要在市场收盘后计算一个时间间隔。

假设股票市场在下午6:30关闭,之后我需要时间间隔到12:00

1 个答案:

答案 0 :(得分:1)

是的,您真的应该提供有关输入数据的更多信息。 因为如果您有两个包含完整日期和时间信息的NSDate值,则只需 timeIntervalSinceDate

    NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MM.dd.yyyy hh:mm a"];    
    NSDate * date1 = [dateFormatter dateFromString:@"01.11.2011 06:30 PM"];
    NSDate * date2 = [dateFormatter dateFromString:@"01.12.2011 12:00 PM"];
    NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];

你会得到63000秒= 17.5小时

但看起来你有时间没有日期信息。在这种情况下,你会得到错误的负值:

[dateFormatter setDateFormat:@"hh:mm a"];
NSDate * date1 = [dateFormatter dateFromString:@"06:30 PM"];
NSDate * date2 = [dateFormatter dateFromString:@"12:00 PM"];
NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];

结果是-23400 s = -6.5 h

所以在这种情况下你应该更正结果,因为你知道第二个日期是在午夜之后:

NSTimeInterval rightInterval = 24*3600 + [date2 timeIntervalSinceDate:date1];