NSDate包含在某个时间间隔内

时间:2014-06-09 15:26:44

标签: ios objective-c nsdate nstimeinterval

我有一些类似的数据:

Monday: from 8.00am to 13.pm; 14:00 pm to 20.00pm 
Tuesdays: from 8.00am to 10 am; 13.00 pm to 17.00 pm; from 17.00 pm to 23.00 pm;
.....

现在我要检查某个时间间隔内是否包含NSDate(例如现在的NSDate)......这种情况有什么用?

1 个答案:

答案 0 :(得分:0)

NSDate是一个非常薄的双精度浮点值包装器(自2001年1月1日以来的秒数。)

NSDate比较非常快。

如果您真的很担心,请将日期转换为NSTimeInterval值(双打),然后进行数值比较:

NSTimeInterval startInterval = [startDate timeIntervalSinceReferenceDate];
NSTimeInterval endInterval = [endDate timeIntervalSinceReferenceDate];

NSTimeInterval someDateInterval = [someDate timeIntervalSinceReferenceDate];

if (someDateInterval >= startInterval && someDateInterval <= endInterval)
  //the date someDate is between startDate and endDate.

显然,你会得到一次起始和结束时间间隔,然后用它们来比较每个候选日期。