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为负数时即为减少.

你可能感兴趣的:(iOS - 日期增加/减少)