gpt4 book ai didi

iphone - NSDate 减去一个月

转载 作者:太空狗 更新时间:2023-10-30 03:13:53 27 4
gpt4 key购买 nike

我想要两个 NSInteger 年月回溯一个月。例如现在是2011-01 我怎样才能得到2010-12。添加是一回事,但我想减去。

NSDate *date = [NSDate date];
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:date];
NSInteger year = [dateComponents year];
NSInteger month = [dateComponents month];
[calendar release];
NSString * pdf_name = [NSString stringWithFormat:@"file_%d_%02d.pdf", year, month];

问候安德鲁

编辑:我的解决方案

    NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendarUnit unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

NSDate *date = [NSDate date];
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:date];
NSInteger year = [dateComponents year];
NSInteger month = [dateComponents month];

BOOL substractOneMonth = YES;
if (substractOneMonth) {
if (month==1) {
year--;
month = 12;
}else {
month--;
}
}
[calendar release];

NSString * pdf_name = [NSString stringWithFormat:@"file_%d_%02d.pdf", year, month];

最佳答案

此示例代码来自 iPhone 的日期和时间编程指南。

NSDate *today = [[NSDate alloc] init];
NSLog(@"%@", today);
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setMonth:-1]; // note that I'm setting it to -1
NSDate *endOfWorldWar3 = [gregorian dateByAddingComponents:offsetComponents toDate:today options:0];
NSLog(@"%@", endOfWorldWar3);

希望对您有所帮助!

关于iphone - NSDate 减去一个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4611390/

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