2013-10-30 106 views
3

我正在開發一個使用日期,月份,年份的應用程序。我想要當前的月份日期,因爲當前月份可能有28,29,30,31天。我試圖獲得當年的月份。但我不知道上面的代碼。這是我的代碼。如何獲取目標c中當前月份的日期?

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSDate   *today   = [NSDate date]; 
NSCalendar  *currentCalendar = [NSCalendar currentCalendar]; 
NSDateComponents *yearComponents = [currentCalendar components:NSYearCalendarUnit fromDate:today]; 
int currentYear = [yearComponents year]; 
for(int months = 0; months < 12; months++) 
{ 
    NSString *monthName = [NSString stringWithFormat:@"%@ %i",[[dateFormatter monthSymbols]objectAtIndex: months],currentYear]; 
    NSLog(@"%@ %i",[[dateFormatter monthSymbols]objectAtIndex: months],currentYear); 
    [monthArray addObject:monthName]; 
} 

回答

9

要獲得一天你可以在你NSDateComponents

NSDate *date = [NSDate date]; 
NSCalendar *gregorian = [NSCalendar currentCalendar]; 
NSDateComponents *dateComponents = [gregorian components:(NSDayCalendarUnit|NSMonthCalendarUnit|NSYearCalendarUnit) fromDate:date]; 
NSInteger day = [dateComponents day]; 

,你需要像您可以添加更多的組件單元:NSMonthCalendarUnit,NSWeekdayCalendarUnit,NSYearCalendarUnit

7

NSCalendar及其rangeOfUnit:inUnit:forDate方法可以使用。 。 例如,希望獲得當月的天數:

NSCalendar *cal = [NSCalendar currentCalendar]; 
NSRange range = [cal rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate date]]; 
NSUInteger numberOfDaysInMonth = range.length; 
+1

我怎麼不能得到每個日期?從2013年10月1日到2013年10月31日 – Manimaran

+0

有沒有辦法讓個人約會? – Isuru

+0

http://stackoverflow.com/questions/8501502/getting-every-nsdate-for-this-month-as-nsstring –

相關問題