NSDate获取一个月后的一天

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

    NSDateComponents *comps = nil;

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

    NSDateComponents *adcomps = [[NSDateComponents alloc] init];

    [adcomps setYear:0];

    [adcomps setMonth:-1];

    [adcomps setDay:0];

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



设置你需要增加或减少的年、月、日即可获得新的日期,上述的表示获取mydate日期前一个月的日期,如果该成+1,则是一个月以后的日期,以此类推都可以计算。

  

转载于:https://www.cnblogs.com/zcw-ios/articles/3463304.html

以下是使用 Objective-C 代码输出一个月份的日历: ```objc // 获取当前日期 NSDate *today = [NSDate date]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *components = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:today]; NSInteger year = [components year]; NSInteger month = [components month]; // 设置日期格式化对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MMMM yyyy"]; // 获取当前月份第一天的日期 NSDateComponents *firstDayComponents = [[NSDateComponents alloc] init]; [firstDayComponents setYear:year]; [firstDayComponents setMonth:month]; [firstDayComponents setDay:1]; NSDate *firstDayOfMonth = [calendar dateFromComponents:firstDayComponents]; // 获取当前月份的天数 NSRange daysInMonth = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:firstDayOfMonth]; // 输出日历 NSString *header = [dateFormatter stringFromDate:firstDayOfMonth]; NSLog(@"%@", header); NSLog(@"Su Mo Tu We Th Fr Sa"); NSDateComponents *currentDateComponents = [[NSDateComponents alloc] init]; [currentDateComponents setDay:1]; [currentDateComponents setMonth:month]; [currentDateComponents setYear:year]; NSInteger weekday = [calendar component:NSCalendarUnitWeekday fromDate:firstDayOfMonth]; for (NSInteger i = 1; i < weekday; i++) { printf(" "); } for (NSInteger i = 1; i <= daysInMonth.length; i++) { printf("%2ld ", (long)i); if (i == daysInMonth.length) { printf("\n"); break; } [currentDateComponents setDay:i + 1]; NSDate *currentDate = [calendar dateFromComponents:currentDateComponents]; NSInteger currentWeekday = [calendar component:NSCalendarUnitWeekday fromDate:currentDate]; if (currentWeekday == 1) { printf("\n"); } } ``` 该代码会输出当前月份的日历,例如: ``` May 2021 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ``` 你可以根据需要修改年月来输出不同月份的日历。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值