我有在格式2个timevalues:%H%M%S(E.G.161500)

这些值是基于文本的整数。

是否有可可一个简单的函数,其计算使用60秒和分钟规模这两个整数之间的差?

因此,如果

time 1 = 161500
time 2 = 171500

timedifference = 003000
有帮助吗?

解决方案

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"HHmmss"];

NSDate *date1 = [dateFormatter dateFromString:@"161500"];
NSDate *date2 = [dateFormatter dateFromString:@"171500"];

NSTimeInterval diff = [date2 timeIntervalSinceDate:date1]; // diff = 3600.0

其他提示

用于操作日期的类是NSDate。用于获取时间间隔的方法是-timeIntervalSinceDate:。其结果是一个NSTimeInterval值,这是表示秒的间隔的double

您可以创建从一个NSDate一个NSString对象+dateWithString:,前提是你的日期格式为 2001年3月24日10时45分32秒0600 的。

尝试此代码。

- (NSTimeInterval)intervalBetweenDate:(NSDate *)dt1 andDate:(NSDate *)dt2 {

NSTimeInterval interval = [dt2 timeIntervalSinceDate:dt1];
NSLog(@"%f",interval);
return interval;

}

我将创建一个子类NSFormatter在从输入数据格式解析时间值(你可以把一个上的一个文本字段自动转换用户输入,或者使用它从代码的数据源解析)。使其返回的秒合并的号码作为包裹在一个NSNumber一个NSTimeInterval(双代表秒)。从这里可以很容易地减去差异,并使用您创建的相同NSFormatter类显示。在这两种解析和显示值,你是一个负责编写代码从秒转换为小时:分钟:秒或任何格式你喜欢的。您也可以将这些值转换成提到像mouviciel一个NSDate,如果它是有道理的应用程序。只要记住,你总是会被从基准日,通常是1月1日存储的时间差1970年(的NSDate有方法可以为你做这个)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top