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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容