我想要两个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];
迎接endo
EDIT: My solution
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];
4 回答
此示例代码来自iPhone的日期和时间编程指南 .
我希望这有帮助!
虽然接受的答案有效,但它使用iOS 8.0中折旧的代码 . 在不使用弃用代码的情况下执行相同操作的另一种方法如下:
我建议为此目的创建一个扩展:
用法: