Xcode - 如何找到两个日期之间的中间日期

时间:2011-12-11 03:35:20

标签: objective-c

我想在目标c中找到两个日期之间的中间日期。

1 个答案:

答案 0 :(得分:1)

NSDateComponentsdateByAddingComponents:toDate:options:,这是我使用的,它的效果非常好。一定要注意闰年的岁月。

-(void)getBetweenDates:(NSDate *)startDate andEndDate:(NSDate *)endDate
{
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *offset = [[NSDateComponents alloc] init];
    [offset setDay:1];

    NSMutableArray *dates = [NSMutableArray array];
    NSDate *curDate = startDate;
    while([curDate timeIntervalSince1970] <= [endDate timeIntervalSince1970]) 
    {
        [dates addObject:curDate];
        curDate = [calendar dateByAddingComponents:offset toDate:curDate options:0];
    }

    NSLog(@"%@",dates);

    [offset release];
    [calendar release];
}