如何计算iphone开发中的中午时间间隔?
我正在研究股票市场应用,我需要在市场收盘后计算一个时间间隔。
假设股票市场在下午6:30关闭,之后我需要时间间隔到12:00
答案 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];