2016-08-03 23 views
0

Ich versuche einen Weg zu finden, den Namen des Tages (ex: Montag, Dienstag ..) von der Tagesnummer zu bekommen (zB: 1 ​​für Montag, 2 für Dienstag ... usw.).Name des Tages in einer Woche von der Tagesnummer. (iOS)

Ich habe eine NSDictionary strukturiert so.

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

Ich möchte den Namen des Tages auf dieses Wörterbuch unter dem Schlüssel „DAYNAME“ hinzufügen ..., wenn der Wert der Name des Tages ist auf den Tag-Nummer in der Taste „Tag“ entspricht.

Danke :)

+0

Nun, Sie können Aufzählungsmethode, die String abhängig von der Nummer wechseln (Tag) zurückgeben ... Fall 1: zurück Montag ... – Stefan

Antwort

3

Start Lassen Sie uns, indem Sie die Namen der Tage bekommen:

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

Nun, dies ist eine Reihe von Namen von Wochentagen, wo bei Index 0 ist Sonntag, deshalb werden Sie Ihre Indizes konvertieren.

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

Vielen Dank. Das funktioniert perfekt für meine Bedürfnisse. –

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

Sie DAYNAME mit Tag ersetzen können, wenn Sie es möchten überprüfen. Ich hoffe ich helfe;

0

die enumuration übernehmen und den Tag in einem Array hinzuzufügen

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); 

typedef NS_ENUM (NSInteger, DayString) { DayOne = 1, DayTwo, DayThree, DayFour, DayFive, DaySix, DaySeven };

+0

Huh, wenn Sie eine "enum" erstellen, warum benennen Sie die Fälle nicht mit lesbaren Namen? z.B. 'Montag' statt' DayOne'? Außerdem müssen Sie in den Apple-Codierungsrichtlinien die Fälle "kDayStringMonday", "kDayStringTuesday" usw. benennen, um Namenskonflikte zu vermeiden. – Sulthan

+0

Ja du hast Recht, das verstehe ich, muss Mitglied von enum für lesbar ändern. – Pavankumar