2013-10-10 5 views
0

Im изменяя значение текста в зависимости от дня недели, я смог достичь этого, используя строковые значения, однако вместо этого хочу получить числовое значение - для устранения проблем с разные языки. Например, если сегодня понедельник ... но я хочу, если сегодня день 1, то делай. Ive попробовал код ниже, но он дает мне числовое значение 0;Числовое значение: день недели

NSDateFormatter *dayofweekformatter = [[NSDateFormatter alloc] init]; 
[dayofweekformatter setDateFormat:@"E"]; 

NSString *DayOfWeek = [dayofweekformatter stringFromDate:[NSDate date]]; 
NSInteger weekDay = [DayOfWeek integerValue]; 
NSLog(@"The day of the week is: %d", weekDay); 

Возможно ли это?

ответ

0

По this ссылке, «Е» сама по себе даст вам день недели, как текстовый формат, то есть: «Mon»/«Tue» и т.д.

Если вы хотите в день неделю как целое число, вы должны использовать нижний регистр «e» или «c».

Другой вариант осуществления заключается в использовании NSCalendar и NSDateComponents, чтобы определить день недели, поскольку это более вероятно, чтобы принимать во внимание различные настройки на разных устройствах на основе предпочтительного календаря пользователей.

NSDate *date = [NSDate date]; 

NSCalendar *calendar = [NSCalendar currentCalendar]; 

NSDateComponents *dateComponents = [calendar components:NSCalendarUnitWeekday fromDate:date]; 

NSLog(@"day of the week: %i", [dateComponents weekday]); 
+0

Спасибо очень много работал как шарм. Не могли бы вы рассказать о «другой реализации ...» – DevC

+0

Конечно. Я обновил свой ответ с помощью некоторого примера кода. – CaptainRedmuff

+0

Еще раз спасибо Капитан – DevC

0

Вот решение, предложенное на Apple, форумах https://discussions.apple.com/thread/1700102?start=0&tstart=0 (я не автор)

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 

NSDateComponents *weekdayComponents =[gregorian components:NSWeekdayCalendarUnit fromDate:dateOfInterest]; 

NSInteger weekday = [weekdayComponents weekday]; 
// weekday 1 = Sunday for Gregorian calendar 

[gregorian release]; 
+0

Спасибо, что такое 'dateOfInterest'? – DevC

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