gpt4 book ai didi

objective-c - NSDate 以正确的方式添加一个月,如果上个月有更多天数则剪裁

转载 作者:太空狗 更新时间:2023-10-30 04:00:09 24 4
gpt4 key购买 nike

我用这个方法给日期加上月份

- (NSDate *)sameDateByAddingMonths:(NSInteger)addMonths {

NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents * components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:self];
[components setMonth:components.month + addMonths];

return [calendar dateFromComponents:components];

}

但是当上个月在自己的 NSDate 中有更多的天数时,它会跳到下个月的第一天,比如

6 月有 31 => self 是 6 月 31 日调用它,将日期设置为 1.8 月,因为 7 月有 30 天

如何做到这一点?我认为这应该表现得“正确”并在月底剪辑

最佳答案

这就是 dateByAddingComponents 的用途:

- (NSDate *)sameDateByAddingMonths:(NSInteger)addMonths {

NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *components = [[NSDateComponents alloc] init];
[components setMonth:addMonths];

return [calendar dateByAddingComponents:components toDate:self options:0];
}

关于objective-c - NSDate 以正确的方式添加一个月,如果上个月有更多天数则剪裁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16940125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com