2014-08-15 4 views
0

В iOS Я хочу рассчитать количество дней в месяце, указанное в названии месяца как NSString.Рассчитать количество дней в заданный месяц

я могу получить количество дней в текущем месяце, следующим образом:

-(NSUInteger) getNumberOfDaysInMonth:(NSString *)monthName 
{ 

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

return numberOfDaysInMonth; 

} 

Есть элегантный способ получить месяц, когда я знаю, что название месяца в Objective C?

+1

Посмотрите в NSDateFormatter и использовать шаблоны, описанные [здесь] (http://unicode.org/reports/tr35/ tr35-6.html # Date_Format_Patterns). Обратите внимание, что существует множество способов представления месяца в виде строки. Рассмотрим «Сентябрь», «Сент», «С», «09», «9», «Сен», «Месяц до октября». – CrimsonChris

ответ

0

Например, вы можете использовать:

NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease]; 
    [formatter setDateFormat:@"MMM"]; 
    NSDate *aDate = [formatter dateFromString:@"Aug"]; 
    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSMonthCalendarUnit fromDate:aDate]; 
    NSLog(@"Month: %i", [components month]); 

или:

... 
    [formatter setDateFormat:@"MMMM"]; 
    NSDate *aDate = [formatter dateFromString:@"August"]; 
    ... 
+2

Я не рядом с Mac, чтобы попробовать ваш код, но что он выводит на февраль? Потому что я думаю, что тебе понадобится год. –

+0

код просто возвращает int, соответствующий месяцу, не нужно добавлять день или год для этого. – gduh

+0

Было бы хорошо знать, как получить количество дней в указанном месяце в указанный год. – motionpotion

Смежные вопросы