iOS开发:计算两个事件之间经过的秒数的简单方法是啥?

Posted

技术标签:

【中文标题】iOS开发:计算两个事件之间经过的秒数的简单方法是啥?【英文标题】:iOS Development: What's a simple way to calculate the number of seconds that have passed between two events?iOS开发:计算两个事件之间经过的秒数的简单方法是什么? 【发布时间】:2011-01-11 06:15:12 【问题描述】:

我需要计算 iPhone 上两个事件之间经过的秒数。为此,我需要存储第一个事件发生的时间,并将其与第二个事件发生的时间进行对比,看看是否超过 30 秒。

我即将开始尝试使用 NSDate 类来完成此任务,但我想知道是否有更简单的方法可以在不使用对象的情况下完成此任务,因为我更喜欢存储简单的内在值而不是对象。

感谢您的智慧!

【问题讨论】:

【参考方案1】:

如果你真的想避免存储对象,你可以这样做:

double startTime = [[NSDate date] timeIntervalSince1970];

//Run your other code

double endTime = [[NSDate date] timeIntervalSince1970];

if (endTime - startTime > 30) 
  //30 seconds have passed

【讨论】:

【参考方案2】:

你可以使用 [NSDate dateWithTimeIntervalSinceReferenceDate:anotherDate]; 或使用 initWithTimeIntervalSinceReferenceDate: 方法

【讨论】:

【参考方案3】:

你见过 UIEvent 的timestamp吗?

示例:

double event1Timestamp, event2Timestamp; ///< ivars in your class?

 // some function/method body
  event1Timestamp = event1.timestamp;


 // some other function/method body
  /*** later that day ***/
  event2Timestamp = event2.timestamp;
  if (30 <= (event2Timestamp-event1Timestamp)) 
    printf("ok, it's been 30 seconds");
  

其中 event1 和 event2 自然是传入事件

【讨论】:

以上是关于iOS开发:计算两个事件之间经过的秒数的简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

java怎样计算两个日期之间的秒数

两个日期之间按小时分组的秒数

在 Python 中确定两个日期之间的秒数

java 中怎么比较两个时间相差的秒数

从开始时间和经过的秒数计算日期时间

用Java计算当前时间对象与形参传入时间对象之间间隔秒数的方法