iOS - 日期增加/减少
在iOS开发中,或许会遇到需要将日期进行增加/减少,尽管项目中只有一个位置需要对日期进行增加,我还是把这个方法进行了封装,以便日后调用方便.
/**
日期增加/减少
@param changeKind 日期修改类型 0-天 1-月 2-年
@param changeNum 日期修改数字
@return 修改后的日期
*/
- (NSString *)changeEndTimeByKind:(NSInteger)changeKind withNum:(int)changeNum {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm";
NSDate *nowDate = [formatter dateFromString:self];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *addComps = [[NSDateComponents alloc] init];
switch (changeKind) {
case 0:
[addComps setDay:changeNum];
[addComps setMonth:0];
[addComps setYear:0];
break;
case 1:
[addComps setDay:0];
[addComps setMonth:changeNum];
[addComps setYear:0];
break;
case 2:
[addComps setDay:0];
[addComps setMonth:0];
[addComps setYear:changeNum];
break;
default:
break;
}
NSDate *finallDate = [calendar dateByAddingComponents:addComps toDate:nowDate options:0];
NSString *endTime = [formatter stringFromDate:finallDate];
return endTime;
}
PS:方法中的self代表的就是待修改的日期字符串,因为我是在字符串的扩展中写的方法,所以直接用字符串进行调用.
目前就只对年月日进行了修改,changeNum为负数时即为减少.