ios 获取n个月前或者n个月后的日期

NSCalendar *calendar = [NSCalendar currentCalendar];
NSRange range = [calendar rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate date]];
NSUInteger numberOfDaysInMonth = range.length;
NSDate *datetime = [NSDate dateWithTimeIntervalSince1970:csmcurrentTime-(86400*numberOfDaysInMonth * data_current_index)];
NSDateFormatter *dateformat = [[[NSDateFormatter alloc] init] autorelease];
[dateformat setDateFormat:@"yyyy年MM月"];

NSCalendar *calendar = [[NSCalendar allocinitWithCalendarIdentifier:NSGregorianCalendar];

    NSDateComponents *comps = nil;

    comps = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:mydate];

    NSDateComponents *adcomps = [[NSDateComponents allocinit];

    [adcomps setYear:0];

    [adcomps setMonth:-1];

    [adcomps setDay:0];

    NSDate *newdate = [calendar dateByAddingComponents:adcomps toDate:mydate options:0];

原文地址:https://www.cnblogs.com/sgdkg/p/3611595.html