/// 获取两个日期之间所有日期数组,精确到天
/// @param startDateStr 开始日期
/// @param endDateStr 结束日期
- (NSArray *)getDateArrWithStartDate:(NSString *)startDateStr endDate:(NSString *)endDateStr {
// 计算两个时间的差值
NSCalendar *calendar = [NSCalendar currentCalendar];
// 需要对比的时间数据 NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSCalendarUnit unit = NSCalendarUnitDay;
NSDateFormatter *dateMatter = [[NSDateFormatter alloc] init];
dateMatter.dateFormat = @"yyyy-MM-dd";
NSDate *beginDate = [dateMatter dateFromString:startDateStr];
NSDate *endDate = [dateMatter dateFromString:endDateStr];
// 对比时间差
NSDateComponents *dateCom = [calendar components:unit fromDate:beginDate toDate:endDate options:0];
// 两个日期之间所有天数组成的数组
NSMutableArray *allDayArr = [NSMutableArray new];
for (int i = 0 ; i < dateCom.day+1 ; i ++) {
// n天后的天数
int days = i;
// 一天一共有多少秒
NSTimeInterval oneDay = 24 * 60 * 60;
// 指定的日期
NSDate *appointDate = [NSDate dateWithTimeInterval:oneDay * days sinceDate:beginDate];
// 转字符串
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"]; // @"yyyy-MM-dd"
NSString *appointTime = [dateFormatter stringFromDate:appointDate];
[allDayArr addObject:appointTime];
}
return allDayArr;
}
本篇
iOS - 获取两个日期之间所有日期
获取两个日期之间所有日期数组,精确到天
2021-03-15
下一篇
iOS - 推送
本地推送的简单使用,根据起止时间进行推送
2021-03-15