2013-07-09 76 views
1

嘗試從當前月份開始計算今年的下個月。下面是我的代碼我試圖,但它是從下個月採摘,所以我修改,但現在它顯示當前月份爲2014年和其他人從2013年開始從當前年度開始未來12個月

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSDate   *today   = [NSDate date]; 
NSCalendar  *currentCalendar = [NSCalendar currentCalendar]; 

NSDateComponents *monthComponents = [currentCalendar components:NSMonthCalendarUnit fromDate:today]; 
int currentMonth = [monthComponents month]; 

NSDateComponents *yearComponents = [currentCalendar components:NSYearCalendarUnit fromDate:today]; 
int currentYear = [yearComponents year]; 
int nextYear  = currentYear + 1; 

int months = 1; 
int year; 
for(int m = currentMonth-1; months < 12; m++){ 

int nextMonth = m % 12; 

if(nextMonth < currentMonth){ 
    year = nextYear; 
} else { 
    year = currentYear; 
} 

NSLog(@"%@ %i",[[dateFormatter monthSymbols] objectAtIndex: nextMonth],year); 

months++; 
} 

這是從下面的鏈接輸出。

August 2013 
September 2013 
October 2013 
November 2013 
December 2013 
January 2014 
February 2014 
March 2014 
April 2014 

2013年7月9日12:54:48.683 MyEventApp [13562:C07] 2014年5月 2013年7月9日12:54:48.683 MyEventApp [13562:C07] 2014年6月2013年7月9日 12:54:48.683 MyEventApp [13562:C07] 2014

月接過幫助從這個鏈接Get Month and year of 1 year advance in iPhone.

這是我修改後的代碼。

July 2014 
August 2013 
September 2013 
October 2013 
November 2013 
December 2013 
January 2014 
February 2014 
March 2014 
April 2014 
May 2014 
June 2014 
+1

所以你要問怎麼辦'+ 1'? – devnull

+0

@devnull請檢查編輯的代碼。 –

+0

取當前日期,將'month'設置爲'1'創建'nsdatecomponents',添加12次。使用'NSDateFormatter'格式化日期。 – Sulthan

回答

-1

改變這一行

if(nextMonth < currentMonth) 

if(nextMonth < currentMonth-1) 
+0

亞,它的工作表示感謝。 –

相關問題