我有两次:
十点23分51秒
十时31分54秒
这两个值都作为字符串存储在SQLite数据库中。
我希望以hh:mm格式找到这两次之间的差异 我怎么能这样做?
我搜索了很多。但找不到合适的解决方案。 帮帮我。 感谢。
修改:
基本上看我有两个数组:
InTimeArray
和OuttimeArray
。
现在在viewDidload
方法中,我将获取intime
数组中IntimeArray
和Outtime
条目中的所有outtime
个条目。
现在我在tableview中逐个传递值,如第一行
IntimeArray[0]
OuyTimeArray[0]
第二行:
IntimeArray[1]
OuyTimeArray[1]
现在我想用HH:MM格式计算第一行intime
和outtime
之间的差异。
我真的很困惑。
答案 0 :(得分: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时,您可以通过查看this来了解其中的差异。
我希望这会对你有帮助..
答案 1 :(得分:1)
您必须先使用此方法将两个字符串更改为日期格式: -
- (NSDate *)dateFromString:(NSString *)string;
之后你只需要计算两个日期之间的秒数。看看它。
或还有另一种简单的方法可以做到这一点。即。
首先从这两个数组中获取日期: -
NSDate *eventStartDate = [IntimeArray objectAtIndex:indexpath.row];
NSDate *eventEndDate = [OuyTimeArray objectAtIndex:indexpath.row];
然后计算两个日期之间的差异: -
NSTimeInterval startTimeInterval = [eventStartDate timeIntervalSinceDate:currentDate];
希望它有所帮助谢谢:)
答案 2 :(得分: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
。