标签: nstimeinterval

在swift中将double值舍入为x个小数位数

谁能告诉我如何在Swift中将double值舍入到x个小数位?

我有:

var totalWorkTimeInHours = (totalWorkTime/60/60)
Run Code Online (Sandbox Code Playgroud)

totalWorkTime在第二个是NSTimeInterval(双).

totalWorkTimeInHours 会给我时间,但它给了我这么长的精确数字的时间,例如1.543240952039 ......

当我打印时,如何将其舍入到1.543 totalWorkTimeInHours

double nstimeinterval ios swift

359
推荐指数
25
解决办法
30万
查看次数

如何在Swift中使用NSTimer?

我试过了

var timer = NSTimer()
timer(timeInterval: 0.01, target: self, selector: update, userInfo: nil, repeats: false)
Run Code Online (Sandbox Code Playgroud)

但是,我说错了

'(timeInterval: $T1, target: ViewController, selector: () -> (), userInfo: NilType, repeats: Bool) -> $T6' is not identical to 'NSTimer'
Run Code Online (Sandbox Code Playgroud)

nstimer nstimeinterval ios swift

246
推荐指数
11
解决办法
30万
查看次数

在NSUserDefaults中存储NSDate的最佳方法是什么?

我在NSUserDefaults中存储了两种存储NSDate的方法.

选项1 - setObject:forKey:

// Set
NSDate *myDate = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:myDate forKey:@"myDateKey"];

// Get
NSDate *myDate = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"myDateKey"];
Run Code Online (Sandbox Code Playgroud)

选项2 - timeIntervalSince1970

// Set
NSDate *myDate = [NSDate date];
NSTimeInterval myDateTimeInterval = [myDate timeIntervalSince1970];
[[NSUserDefaults standardUserDefaults] setFloat:myDateTimeInterval forKey:@"myDateKey"];

// Get
NSTimeInterval myDateTimeInterval = [[NSUserDefaults standardUserDefaults] floatForKey:@"myDateKey"];
NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:myDateTimeInterval];
Run Code Online (Sandbox Code Playgroud)

优点和缺点

选项1

这似乎是紧凑和合乎逻辑的.但是,由于Date Formatter错误,我担心这会出错.

选项2

这似乎很笨拙.我也不确定它的准确性 - 在我做过的一次测试中,当我检索到日期时它已经超过了48秒,尽管Apple Docs说NSTimeInterval具有"亚秒精度".

要求

无论我选择何种方法,都必须:

  1. 精确到一秒钟之内.

  2. 可读且可靠.

我的问题

选项2是不准确的,因为我做错了什么?

你会使用这两个选项中的哪一个?

还有其他选择我不知道吗?

谢谢!

cocoa datetime nsdate nsuserdefaults nstimeinterval

172
推荐指数
3
解决办法
5万
查看次数

如何将NSTimeInterval(秒)转换为分钟

我从某个事件中获得了一定的秒数.它存储在NSTimeInterval数据类型中.

我想把它转换成分钟和秒.

例如,我有:"326.4"秒,我想将其转换为以下字符串:"5:26".

实现这一目标的最佳方法是什么?

谢谢.

iphone objective-c minute seconds nstimeinterval

104
推荐指数
9
解决办法
17万
查看次数

使用Swift查找NSDates之间以秒为单位的差异

我正在写一段代码,我想要按下按钮的时间.为此,我NSDate()在按下按钮时录制了一个按钮,并timeIntervalSinceDate在释放按钮时尝试使用该功能.这似乎工作,但我找不到任何方法来打印结果或将其切换为整数.

var timeAtPress = NSDate() 

@IBAction func pressed(sender: AnyObject) {
    println("pressed")
    timeAtPress = NSDate()
}

@IBAction func released(sender: AnyObject) {
    println("released")
    var elapsedTime = NSDate.timeIntervalSinceDate(timeAtPress)
    duration = ???
}
Run Code Online (Sandbox Code Playgroud)

我见过几个类似的问题,但我不知道C所以我很难理解给出的答案.如果有更有效的方法来确定按钮被按下多长时间,我愿意接受建议.提前致谢.

nsdate nstimeinterval swift

93
推荐指数
4
解决办法
7万
查看次数

如何在iPhone上将NSTimeInterval分解为年,月,日,小时,分钟和秒?

我有一个跨越多年的时间间隔,我希望所有的时间组件从一年到几秒.

我的第一个想法是将一年中的时间间隔除以整数秒,从运行的总秒数中减去该值,将其除以一个月中的秒数,从运行总计中减去该值,依此类推.

这看起来很复杂,我已经读过,无论何时你做一些看起来错综复杂的事情,都可能有内置的方法.

在那儿?

我将Alex的第二种方法整合到我的代码中.

它位于我的界面中由UIDatePicker调用的方法中.

NSDate *now = [NSDate date];
NSDate *then = self.datePicker.date;
NSTimeInterval howLong = [now timeIntervalSinceDate:then];

NSDate *date = [NSDate dateWithTimeIntervalSince1970:howLong];
NSString *dateStr = [date description];
const char *dateStrPtr = [dateStr UTF8String];
int year, month, day, hour, minute, sec;

sscanf(dateStrPtr, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &sec);
year -= 1970;

NSLog(@"%d years\n%d months\n%d days\n%d hours\n%d minutes\n%d seconds", year, month, day, hour, minute, sec);
Run Code Online (Sandbox Code Playgroud)

当我将日期选择器设置为过去1年和1天的日期时,我得到:

1年1个月1天16小时0分20秒

这是1个月和16个小时.如果我将日期选择器设置为过去的1天,我的数量相同.

更新:我有一个应用程序,计算你的年龄,给定你的生日(从UIDatePicker设置),但它经常关闭.这证明存在不准确性,但我无法弄清楚它来自哪里,可以吗?

iphone time cocoa nstimeinterval

55
推荐指数
3
解决办法
5万
查看次数

从NSTimeInterval转换为swift中的小时,分​​钟,秒,毫秒

我的代码在这里:

func stringFromTimeInterval(interval:NSTimeInterval) -> NSString {

    var ti = NSInteger(interval)
    var ms = ti * 1000
    var seconds = ti % 60
    var minutes = (ti / 60) % 60
    var hours = (ti / 3600)

      return NSString(format: "%0.2d:%0.2d:%0.2d",hours,minutes,seconds,ms)
}
Run Code Online (Sandbox Code Playgroud)

在输出中毫秒给出错误的结果.请给出如何正确找到毫秒的想法.

nstimeinterval ios swift

50
推荐指数
8
解决办法
7万
查看次数

两个日期之间的差异,以秒为单位

我有一个应用程序,其中显示内容给用户.我现在想知道用户实际查看该内容的秒数.所以在我的头文件中,我已经声明了一个

 NSDate *startTime;
 NSDate *endTime;
Run Code Online (Sandbox Code Playgroud)

然后在我的viewWillAppear中

 startTime = [NSDate date];
Run Code Online (Sandbox Code Playgroud)

然后在我的viewWillDisappear中

endTime = [NSDate date];
NSTimeInterval secs = [endTime timeIntervalSinceDate:startTime];
NSLog(@"Seconds --------> %f", secs);
Run Code Online (Sandbox Code Playgroud)

但是,应用程序崩溃,有时会出现不同的错误.有时它是内存泄漏,有时它是NSTimeInterval的问题,有时它会在第二次返回内容后崩溃.

有任何想法来解决这个问题吗?

nsdate nstimeinterval ios

47
推荐指数
2
解决办法
3万
查看次数

NSTimeInterval格式

我想把NSTimeInterval它格式化为字符串00:00:00(小时,分钟,秒).做这个的最好方式是什么?

objective-c nstimeinterval ios

40
推荐指数
3
解决办法
2万
查看次数

如何将NSTimeInterval转换为int?

如何将NSTimeInterval转换为Integer值?

我的TimeInterval保存了该值83.01837.我需要把它转换成83.我用Google搜索但找不到任何帮助.

iphone integer nstimeinterval ios

36
推荐指数
4
解决办法
7万
查看次数