从日期编号获取一周中的日期名称。 (iOS)

Get name of the day in a week from the day number. (iOS)

我正在尝试找出一种方法来从日期编号(例如:1 表示星期一,2 表示星期二..等)中获取日期名称(例如:星期一、星期二..)。

我有一个 NSDictionary 结构是这样的。

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

我想在关键字 "dayName" 下将日期添加到此字典中...其中值是与关键字中的日期编号对应的日期名称 "day" .

谢谢:)

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

如果要查看,可以将dayName替换为day。希望能帮到你;

让我们从获取日期的名称开始:

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

现在,这是一个工作日名称数组,其中索引 0 是星期日,因此您必须转换索引。

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

应用枚举并将日期添加到数组中

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;
}
}
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) { 第一天 = 1, 第二天, 第三天, 第四天, 第五天, 第六天, 第七天 };