Dan*_*tay 6 iphone objective-c nsdate
我的问题是典型的"如何判断NSDate是否在startDate和endDate之间?"的反转?
我想要做的是找到在startWate和endDate之间发生的所有NSDATES(到当天,而不是小时或分钟).包括这些日期将是可取的,尽管没有必要.
示例:(我知道这些不代表NSDates,这些只是为了说明)
INPUT:startDate = 6/23/10 20:11:30 endDate = 6/27/10 02:15:00
输出:NSArray:6/23/10,6/24/10,6/25/10,6/26/10,6/27/10
我不介意做这项工作.只是我不知道在制作高效代码方面从哪里开始,而不必一点一点地逐步完成NSDates.
使用NSCalendar实例将您的启动NSDate实例转换为NSDateComponents实例,添加1天NSDateComponents并使用NSCalendar它将其转换回NSDate实例.重复最后两个步骤,直到达到结束日期.
添加24小时到开始日期,直到超过结束日期.
for ( nextDate = startDate ; [nextDate compare:endDate] < 0 ; nextDate = [nextDate addTimeInterval:24*60*60] ) {
// use date
}
Run Code Online (Sandbox Code Playgroud)
如果您关心一天中的时间,您可以在开始循环之前将第一个日期舍入到中午或午夜.
| 归档时间: |
|
| 查看次数: |
4010 次 |
| 最近记录: |