2016-08-03 55 views
0

Я пытаюсь выяснить способ получить название дня (например: понедельник, вторник ...) со дня (например: 1 для понедельника, 2 для вторника .. и т.д.).Получите имя дня в неделю с номера дня. (iOS)

У меня есть NSDictionary, структурированный так.

{ 
close =  { 
    day = 5; 
    time = "22:00"; 
    dayName = ""; 
}; 
open =  { 
    day = 5; 
    time = "9:00"; 
    dayName = ""; 
}; 
} 

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

Спасибо :)

+0

Ну, вы можете сделать метод перечисления, который вернет строку в зависимости от номера переключателя (день) ... случай 1: возвращение понедельника ... – Stefan

ответ

3

Давайте, получив название дней:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSArray *daySymbols = dateFormatter.standaloneWeekdaySymbols; 

Теперь это массив названий дней недели, где индекс 0 в воскресенье, поэтому вам придется конвертировать ваши индексы.

NSInteger dayIndex = 1; // 1 = Monday, ... 7 = Sunday 
NSString *dayName = daySymbols[dayIndex % 7]; 
+0

Спасибо. Это отлично работает для моих нужд. –

-1
NSString * closeDay=[[yourDictionary valueForKey:@"close"] valueForKey:@"dayName"]; 
NSString * openDay=[[yourDictionary valueForKey:@"open"] valueForKey:@"dayName"]; 

вы можете заменить DAYNAME с дня, если вы хотите проверить его. Надеюсь, я помогу; начало

0

Применить enumuration и добавьте в день в массиве

NSString * closeDay=[[yourDictionary valueForKey:@"close"] valueForKey:@"dayName"]; 
NSString * openDay=[[yourDictionary valueForKey:@"open"] valueForKey:@"dayName"]; 

NSMutableArray *arr = [[NSMutableArray alloc]init]; 

[arr addObject:openDay]; 
NSMutableArray *finalArray= [[NSMutableArray alloc]init]; 

for(int i=0; i<[givenDic count];i++){ 
NSString *day= [self getDay:arr[i]]; 
NSMutableDictionary *dic= [[NSMutableDictionary alloc]init]; 
[dic setObject:day forKey:@"dayName"]; 
[finalArray addObject:dic]; 
} 

-(NSString*)getDay:(NSString *)dayNo{ 
switch([dayNo intValue]){ 

case 1: 
return Monday; 
break; 

case 2: 
return Tuesday; 
break; 

case 3: 
return Wednesday; 
break; 

case 4: 
return Thursday; 
break; 

case 5: 
return Friday; 
break; 

case 6: 
return Saturday; 
break; 

case 7: 
return Sunday; 
break; 
} 
} 
-1
NSMutableArray *array = [NSMutableArray new]; 
[array addObject:@"1"]; 
[array addObject:@"2"]; 
[array addObject:@"5"]; 
[array addObject:@"4"]; 

NSMutableArray *mainArray = [NSMutableArray new]; 

for(int i=0; i< array.count;i++){ 
    NSMutableDictionary *dict = [NSMutableDictionary new]; 
    switch ([array[i] integerValue]) { 
     case DayOne: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Sunday" forKey:@"dayName"]; 
      break; 
     case DayTwo: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Monday" forKey:@"dayName"]; 
      break; 
     case DayThree: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Tuesday" forKey:@"dayName"]; 
      break; 
     case DayFour: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Wednesday" forKey:@"dayName"]; 
      break; 
     case DayFive: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Thursday" forKey:@"dayName"]; 
      break; 
     case DaySix: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Friday" forKey:@"dayName"]; 
      break; 
     case DaySeven: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Saturday" forKey:@"dayName"]; 
      break; 
     default: 
      break; 
    } 
    [mainArray addObject:dict]; 
} 
NSLog(@"%@",mainArray); 

ЬурейеЕ NS_ENUM (NSInteger, DayString) { DayOne = 1, DayTwo, DayThree, DayFour, DayFive, DaySix, DaySeven };

+0

Да, если вы создаете 'enum', почему бы вам не назвать случаи с человекочитаемыми именами? например 'Понедельник' вместо' DayOne'? Кроме того, в инструкциях по кодированию Apple требуется указать имена «kDayStringMonday», «kDayStringTuesday» и т. Д., Чтобы избежать конфликтов имен. – Sulthan

+0

Да, правильно, я понимаю, мне нужно изменить член перечисления для чтения. – Pavankumar

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