问题
anyone know or can provide some example code relating to "timeIntervalSinceNow" method...
I need something like... time2(when app eneters foreground) - time1(when app enters background) = time3(the difference in times)... this is so i can use this number(pref in seconds) to calculate the time i have lost while the app has been in background !!
I am having trying trying to create the date objects, receive the object and display/use in a label....
回答1:
timeIntervalSinceNow
tells you the offset of an NSDate
from the current time. You want timeIntervalSinceDate:
:
NSDate *appEnteredForeground = ...;
NSDate *appEnteredBackground = ...;
NSTimeInterval difference = [appEnteredBackground timeIntervalSinceDate: appEnteredForeground];
回答2:
You can calculate the difference between two dates with the timeIntervalSinceDate:
method:
//When app enters background:
self.backgroundDate = [NSDate date]; //this should be a property
//...
//When the app comes back to the foreground:
NSTimeInterval timeSpentInBackground = [[NSDate date] timeIntervalSinceDate:self.backgroundDate];
NSTimeInterval
is simply a typedef for double
, it's measured in seconds. [NSDate date]
instantiates an NSDate
object with the current date and time.
回答3:
Actually, to answer your original question, myles, you can use timeIntervalSinceNow
.
In the statement below, inputDate
has been initialized as an NSDate
and set to some date (you could just try [NSDate *inputDate = [NSDate date];
to set the date at the current date and time.
NSTimeInterval timeToAlert =[inputDate timeIntervalSinceNow];
The next line is a way to put that NSTimeInterval
into a string.
NSMutableString *timeinterval = [NSMutableString string];
[timeinterval appendFormat:@"%f",timeToAlert];
Finally, the app delegate class is typically where code can be written to handle coming in and out of background. Good luck!
来源:https://stackoverflow.com/questions/6144966/measuring-time-interval-since-now