在我的应用中,我有两个约会。
例如,
第1日:2011年10月28日
第二次约会:2011年11月2日
现在我想要在这两个选定日期之间的所有日期。
应该是,
2011-10-28
29-10-2011
30-10-2011
2011年1月11日
2011年2月11日
如何使用NSDate获取此信息?
答案 0 :(得分:6)
尝试dateWithTimeInterval:SinceDate:
NSMutableArray dates = [NSMutableArray array];
NSDate *curDate = startDate;
while([curDate timeIntervalSince1970] <= [endDate timeIntervalSince1970]) //you can also use the earlier-method
{
[dates addObject:curDate];
curDate = [MSDate dateWithTimeInterval:86400 sinceDate:curDate]; 86400 = 60*60*24
}
//here maybe an additional check if the enddate has to be inserted or not
答案 1 :(得分:3)
看NSDateComponents
和dateByAddingComponents:toDate:options:
,这是我使用的,它的效果非常好。一定要注意闰年的岁月。
更新:我会使用托马斯的例子。它的效果比我的好,而且阅读起来容易得多。
答案 2 :(得分:0)
您可以使用NSDateFormatter将字符串转换为NSDate对象,然后使用NSDate的ealierDate:和laterDate:方法来比较它们。
答案 3 :(得分:0)
NSDate *today = [NSDate date];
NSDate *startDate = [NSDate date];
NSDate *endDate = [today addTimeInterval:10.0*60.0*60.0*24.0]; // end date 10 days ahead
while (YES) {
startDate= [startDate addTimeInterval:1.0*60.0*60.0*24.0];
NSLog(@"%@ -- %@",endDate,startDate);
if([startDate compare:endDate]==NSOrderedDescending) break;
}