1

我有两次:

10:23:51
10:31:54

这两个值都作为字符串存储在 SQLite 数据库中。

我想以 hh:mm 格式找到这两次之间的区别。
我怎样才能做到这一点?

我已经搜索了很多。但找不到合适的解决方案。帮帮我。谢谢。

编辑: 基本上看我有两个数组:
InTimeArrayOuttimeArray. 现在在viewDidload方法中,我正在获取数组intime中的所有条目IntimeArrayOuttime条目。outtime

现在我像第一行一样在 tableview 中一个一个地传递值

 IntimeArray[0]
 OuyTimeArray[0]

第二行:

 IntimeArray[1]
 OuyTimeArray[1]

现在我想计算第一行intimeouttimeHH:MM 格式之间的差异。
我真的很困惑。

4

3 回答 3

1

你可以看看:

-(NSDate *)dateFromString:(NSString *)string
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormat setLocale:locale];
[dateFormat setDateFormat:@"HH:mm:ss"];

NSDate *date1 = [dateFormat dateFromString:string];  
if(!date1) date1= [NSDate date];
[dateFormat release];
[locale release];

return date1;
}

这会将 NSDate 转给您,当您将它们都更改为 NSDate 时,您可以通过查看来了解差异

我希望这能帮到您..

于 2012-05-04T12:01:01.207 回答
1

您必须首先使用此方法将两个字符串更改为日期格式:-

- (NSDate *)dateFromString:(NSString *)string;

之后你只需要计算两个日期之间的秒数。就是这样。

或者还有另一种简单的方法可以做到这一点。IE

首先从两个数组中获取日期,如下所示:-

NSDate *eventStartDate = [IntimeArray objectAtIndex:indexpath.row];

NSDate *eventEndDate = [OuyTimeArray objectAtIndex:indexpath.row];

然后像这样计算两个日期之间的差异:-

NSTimeInterval startTimeInterval = [eventStartDate timeIntervalSinceDate:currentDate];

希望对您有所帮助谢谢:)

于 2012-05-04T12:06:54.680 回答
0

尝试这个:

NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"HH:mm:ss"];

NSDate *d1 = [formatter dateFromString:IntimeArray[0]];
NSDate *d2 = [formatter dateFromString:OuyTimeArray[0]];

NSTimeInterval ti = [d2 timeIntervalSinceDate:d1];
float hours = floor(ti / 3600);
float minutes = floor((ti - hours*3600) / 60);

NSString *s = [NSString stringWithFormat:@"%02.0f:%02.0f",hours,minutes];

对于您给定的示例,NSLog(@"Time passed: %@",s);将打印00:08.

于 2012-05-04T12:59:06.727 回答