iOS 获取时间段内的所有日期

作者: fei_飞 | 来源:发表于2017-10-22 13:08 被阅读509次

最近用到了日历相关的东西,展示一定时间段内的日期信息或者提醒时间,通过网上搜索和学习,自己总结了一下,如有不对或者更好的方法,请指正。

获取指定时间内的所有日期,


+ (NSArray*)getDatesWithStartDate:(NSString *)startDate endDate:(NSString *)endDate {

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSCalendarIdentifierGregorian];

//字符串转时间
NSDateFormatter *matter = [[NSDateFormatter alloc] init];
matter.dateFormat = @"yyyy-MM-dd";
NSDate *start = [matter dateFromString:startDate];
NSDate *end = [matter dateFromString:endDate];

NSMutableArray *componentAarray = [NSMutableArray array];
NSComparisonResult result = [start compare:end];
NSDateComponents *comps;
while (result != NSOrderedDescending) {
       comps = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay |  NSCalendarUnitWeekday fromDate:start];
       [componentAarray addObject:start];

       //后一天
       [comps setDay:([comps day]+1)];
       start = [calendar dateFromComponents:comps];

       //对比日期大小
       result = [start compare:end];
   }
   return componentAarray;
}

这里,传入是两个时间的NSString类型,返回一个date数组,当然根据个人需求,可以自己处理,包括dateFormat格式和返回数据等。

相关文章

网友评论

    本文标题:iOS 获取时间段内的所有日期

    本文链接:https://www.haomeiwen.com/subject/uymguxtx.html