Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert NSTimeInterval to int?

How do I convert NSTimeInterval into an Integer value?

My TimeInterval holds the value 83.01837. I need to convert it into 83. I have googled but couldn't find any help.

like image 618
Pradeep Reddy Kypa Avatar asked Jun 20 '12 14:06

Pradeep Reddy Kypa


People also ask

What is NSTimeInterval?

TimeInterval (née NSTimeInterval ) is a typealias for Double that represents duration as a number of seconds. You'll see it as a parameter or return type for APIs that deal with a duration of time.

Is NSTimeInterval in seconds?

A NSTimeInterval value is always specified in seconds; it yields sub-millisecond precision over a range of 10,000 years.


2 Answers

Direct assignment:

NSTimeInterval interval = 1002343.5432542; NSInteger time = interval; //time is now equal to 1002343 

NSTimeInterval is a double, so if you assign it directly to a NSInteger (or int, if you wish) it'll work. This will cut off the time to the nearest second.

If you wish to round to the nearest second (rather than have it cut off) you can use round before you make the assignment:

NSTimeInterval interval = 1002343.5432542; NSInteger time = round(interval); //time is now equal to 1002344 
like image 88
Aaron Hayman Avatar answered Sep 23 '22 20:09

Aaron Hayman


According to the documentation, NSTimeInterval is just a double:

typedef double NSTimeInterval; 

You can cast this to an int:

seconds = (int) myTimeInterval; 

Watch out for overflows, though!

like image 45
Emil Vikström Avatar answered Sep 21 '22 20:09

Emil Vikström