1
我使用Objective-C創建了一堆代碼,以確定從1/1/1901到31/12/2000每個月的每個月的第1個月。我希望得到如下的輸出:生成20世紀的第1個月 - Objective-C
1/1/1901
1/2/1901
1/3/1901
.
.
.
1/11/2000
1/12/2000
但我發現了每個月的最後一天:
31/1/1901
28/2/1901
.
.
.
30/11/2000
31/12/2000
這裏是我的代碼:
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy"];
NSDate *date = [[NSDate alloc] init];
date = [formatter dateFromString:@"01/01/1901"];
NSDate *stopDate = [[NSDate alloc] init];
stopDate = [formatter dateFromString:@"31/12/2000"];
NSCalendar *cal = [NSCalendar currentCalendar];
while ([[date earlierDate:stopDate] isEqualToDate:date]){
NSDateComponents *comps = [cal components:NSWeekdayCalendarUnit|NSMonthCalendarUnit|NSYearCalendarUnit fromDate:date];
if ([comps month] == 12){
[comps setMonth:1];
[comps setYear:[comps year]+1];
}else{
[comps setMonth:[comps month]+1];
}
date = [cal dateFromComponents:comps];
NSLog(@"%@",date);
}
}
return 0;
}
我在哪裏錯了?
氣味像功課。 – Mundi
對於初學者用日期格式化程序輸出日期:'NSLog(@「date:%@」,[formatter stringFromDate:date]);' – zaph
這是如何解決問題的? – moray95