美文网首页
iOS-将阿拉伯数字转换成汉文数字或者将日期转换成古月份

iOS-将阿拉伯数字转换成汉文数字或者将日期转换成古月份

作者: Mn_Su | 来源:发表于2016-10-25 09:00 被阅读0次

    一.将阿拉伯数字转换成汉文数字

       - (NSString *)translationArabicNum:(NSInteger)arabicNum
        {
            NSString *arabicNumStr = [NSString stringWithFormat:@"%ld",(long)arabicNum];
            NSArray *arabicNumeralsArray = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"0"];
            NSArray *chineseNumeralsArray = @[@"一",@"二",@"三",@"四",@"五",@"六",@"七",@"八",@"九",@"零"];
            NSArray *digits = @[@"个",@"十",@"百",@"千",@"万",@"十",@"百",@"千",@"亿",@"十",@"百",@"千",@"兆"];
            NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:chineseNumeralsArray forKeys:arabicNumeralsArray];
            
            if (arabicNum < 20 && arabicNum > 9) {
                if (arabicNum == 10) {
                    return @"十";
                }else{
                    NSString *subStr1 = [arabicNumStr substringWithRange:NSMakeRange(1, 1)];
                    NSString *a1 = [dictionary objectForKey:subStr1];
                    NSString *chinese1 = [NSString stringWithFormat:@"十%@",a1];
                    return chinese1;
                }
            }else{
                NSMutableArray *sums = [NSMutableArray array];
                for (int i = 0; i < arabicNumStr.length; i ++)
                {
                    NSString *substr = [arabicNumStr substringWithRange:NSMakeRange(i, 1)];
                    NSString *a = [dictionary objectForKey:substr];
                    NSString *b = digits[arabicNumStr.length -i-1];
                    NSString *sum = [a stringByAppendingString:b];
        
                    if ([a isEqualToString:chineseNumeralsArray[9]])
                    {
                        if([b isEqualToString:digits[4]] || [b isEqualToString:digits[8]])
                        {
                            sum = b;
                            if ([[sums lastObject] isEqualToString:chineseNumeralsArray[9]])
                            {
                                [sums removeLastObject];
                            }
                        }else
                        {
                            sum = chineseNumeralsArray[9];
                        }
                        
                        if ([[sums lastObject] isEqualToString:sum])
                        {
                            continue;
                        }
                    }
                    
                    [sums addObject:sum];
        
                }
                NSString *sumStr = [sums  componentsJoinedByString:@""];
                NSString *chinese = [sumStr substringToIndex:sumStr.length-1];
                return chinese;
            }
        }
    

    二.将日期转换成古月份

        - (void)viewDidLoad {
                [super viewDidLoad];
                // Do any additional setup after loading the view, typically from a nib.
                
                // 初始化时间格式控制器
                NSDateFormatter *matter = [[NSDateFormatter alloc] init];
                // 设置设计格式
                [matter setDateFormat:@"MM月dd日"];
                // 进行转换
                NSString *totalStr = [matter stringFromDate:[NSDate date]];
                NSLog(@"今天是%@",totalStr);
            
                //截取月份
                NSString *monStr = [totalStr substringWithRange:NSMakeRange(0, 2)];
                NSLog(@"今天是%@月",monStr);
            
                //截取日号
                NSString *dateStr = [totalStr substringWithRange:NSMakeRange(3, 2)];
                NSLog(@"今天是%@日",dateStr);
                
                NSString *dae = [self translationArabicNum:[monStr integerValue]];
                NSLog(@"%@",dae);
            
            
            
            }
            
            
            - (NSString *)translationArabicNum:(NSInteger)arabicNum
            {
                NSString *arabicNumStr = [NSString stringWithFormat:@"%ld",(long)arabicNum];
                NSArray *arabicNumeralsArray = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12"];
                NSArray *chineseNumeralsArray = @[@"壹",@"贰",@"叁",@"肆",@"伍",@"陆",@"柒",@"捌",@"玖",@"拾",@"冬",@"腊"];
                NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:chineseNumeralsArray forKeys:arabicNumeralsArray];
                
                NSString *chinese = [dictionary objectForKey:arabicNumStr];
                return chinese;
                
            }

    相关文章

      网友评论

          本文标题:iOS-将阿拉伯数字转换成汉文数字或者将日期转换成古月份

          本文链接:https://www.haomeiwen.com/subject/opkruttx.html