我有兴趣创建一种方法来查找当前日期是否在特定日期的特定时间之间。这是一个调度计划,所以我想知道当前发生了什么事件。每天都有相同的时间:820-900,900-940,940-1020等。由于这必须在任何一天完成,我不知道如何创建一个特定时间的NSDate。我认为这可能与NSTimeInterval完成,但我不知道如何实例化。NSDate在两个给定的NSDates之间
7
A
回答
26
这是不完美的,但你可以使用[NSDate的比较:]检查你的约会对阵双方边界:
NSDate *firstDate = ...
NSDate *secondDate = ...
NSDate *myDate = [NSDate date];
switch ([myDate compare:firstDate]) {
case NSOrderedAscending:
NSLog(@"myDate is older");
// do something
break;
case NSOrderedSame:
NSLog(@"myDate is the same as firstDate");
// do something
break;
case NSOrderedDescending:
NSLog(@"myDate is more recent");
// do something
break;
}
switch ([myDate compare:secondDate]) {
case NSOrderedAscending:
NSLog(@"myDate is older");
// do something
break;
case NSOrderedSame:
NSLog(@"myDate is the same as secondDate");
// do something
break;
case NSOrderedDescending:
NSLog(@"myDate is more recent");
// do something
break;
}
或者更简单:
BOOL between = NO;
if (([myDate compare:firstDate] == NSOrderedDescending) &&
([myDate compare:secondDate] == NSOrderedAscending)) {
between = YES;
}
我敢肯定有一个更好的方法来做复杂的日期比较,但这应该工作。
4
看看 - [NSCalendar组件:fromDate:]。它可以让你将一个日期分解成不同的组件,然后你可以在这个例子中查看小时和分钟。
11
最简单的方法是使用-timeIntervalSinceReferenceDate
将每个日期转换为NSTimeInterval
类型的值,该值仅为double
。
NSTimeInterval rightNow = [[NSDate date] timeIntervalSinceReferenceDate];
从那里,确定日期是否在任何给定的两个日期之间只是简单的数字比较的问题。
如果您需要将日期的字符串表示形式转换为NSDate实例,然后检索时间间隔,请使用NSDateFormatter。
如果您需要从已知日期组件创建日期,请使用NSCalendar。 (即您知道年份是2010年,月份是4,日期是12,您可以使用NSCalendar的组件通过-dateFromComponents:
方法生成NSDate实例)。
由于本表示,NSCalendar的组件接口,也可用于苏斯出小时&分钟,以确定它是否是在一个范围内(这似乎是在最事件不会每天都在发生非典型用法同时......但是......当然......也有这样的理由!)
相关问题
- 1. 两个NSDates之间的区别
- 2. 2个NSDates之间的时间间隔
- 3. 两个NSDate之间的日期比较
- 4. 两个NSDate对象之间的天数
- 5. 通过组合两个NSDates制作一个新的NSDate
- 6. 从两个NSDates
- 7. 在两个NSDates之间发生的特定工作日的计数
- 8. 计算两个NSDates之间的商务日和周末天数
- 9. 两个NSDates之间的月数和天数
- 10. 获取两个NSDates之间的所有日期(不是几天)
- 11. Objective C中两个NSDates之间的循环
- 12. 得到两个之间的时间间隔的NSDate
- 13. 比较两个NSDates在iPhone
- 14. 比较两个NSDates
- 15. 在给定时间创建NSDate
- 16. 计算使用两个NSDates
- 17. 不能比较两个NSDates
- 18. 如何编译两个NSDates?
- 19. 在两个给定的日期之间的bash循环
- 20. iPhone - NSDate之间的转换 - NSString - NSDate
- 21. R中两个给定时间之间的数据值差异
- 22. 在mongodb和nodejs中找到两个给定值之间的objectIds
- 23. Eclipse:在两个给定的标签之间获取文本
- 24. 获取在给定两个日期之间的范围
- 25. 的NSDate:日期介于两个日期之间
- 26. 获得两个NSDate之间的准确时差?
- 27. 给两个div之间的差距?
- 28. 获取特定时区中两个NSDate日期之间的天数
- 29. 之间比较2 NSDate的
- 30. 在两个给定点之间插值新点
没有例子。 :(:( – bluefloyd8 2013-11-25 14:18:07