2013-10-30 3 views
3

날짜, 월, 연도를 사용하는 앱을 개발 중입니다. 나는 현재 달이 28,29,30,31 일을 가질 수 있기 때문에 현재 달 날짜를 원한다. 나는 현재 년 개월을 얻으려고 노력했다. 하지만 위의 코드를 모르겠습니다. 여기 내 코드가있다.Objective 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

NSCalendarrangeOfUnit:inUnit:forDate 방법을 사용할 수 있습니다. . 예를 들어 는 현재 월의 일 수를 얻을 수 있습니다 :

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

어떻게 각각의 날짜를 얻을 수 있습니까 ?? 2011 년 1 월 10 일부터 3110-2013까지 – Manimaran

+0

개별 날짜를 얻는 방법이 있습니까? – Isuru

+0

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