iOS 公历转农历

 

+(NSString *)getChineseCalendarWithDate:(NSDate *)date {
 
    NSArray * chineseYears = [NSArray arrayWithObjects:
                       @“甲子”,@“乙丑”,@“丙寅”,@“丁卯”,@“戊辰”, @“己巳”,@“庚午”,@“辛未”,@“壬申”,@“癸酉”,
                       @“甲戌”,@“乙亥”,@“丙子”,@“丁丑“,@”戊寅“,@”己卯“,@”庚辰“,@”辛己​​“,@”壬午“,@”癸未“,
                       @”甲申“,@”乙酉“,@”丙戌“,@”丁亥“,@”戊子“,@”己丑“,@”庚寅“,@”辛卯“,@”壬辰“,@”癸巳“,
                       @”甲午“ @“乙未”,@“丙申”,@“丁酉”,@“戊戌”,@“己亥”,@“庚子”,@“辛丑”,@“壬寅”,@“癸丑“,
                       ”“甲辰”,@“乙巳”,@“丙午”,@“丁未”,@“戊申”,@“己酉”,@“庚戌”,@“辛亥”,@“壬子“,@”癸丑“,
                       @”甲寅“,@”乙卯“,@”丙辰“,@”丁巳“,@ “丁午”,@“己未”,@“庚申”,@“辛酉”,@“壬戌‘@’癸亥“,零]。
    
    NSArray * chineseMonths = [NSArray arrayWithObjects:
                        @“正月”,@“二月”,@“三月”,@“四月”,@“五月”,@“六月”,@“七月”,@“八月”, 
                        @“九月”,@‘十月’,@‘冬月’,@‘腊月’,无;
    
    
    NSArray * chineseDays = [NSArray arrayWithObjects:
                      @“初一”,@“初二”,@“初三”,@“初四”,@“初五”,@“初六”,@“初七”, @“初八”,@“初九”,@“


    
    
    初十”,  NSCalendar * localeCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSChineseCalendar];
    
    unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
 
    NSDateComponents * localeComp = [localeCalendar components:unitFlags fromDate:date];
    
    的NSLog(@“%D_%D_%d%@”,localeComp.year,localeComp.month,localeComp.day,localeComp.date);
    
    NSString * y_str = [chineseYears objectAtIndex:localeComp.year-1];
    NSString * m_str = [chineseMonths objectAtIndex:localeComp.month-1];
    NSString * d_str = [chineseDays objectAtIndex:localeComp.day-1];
 
    NSString * chineseCal_str = [NSString stringWithFormat:@“%@ _%@ _%@”,y_str,m_str,d_str];
    
    [localeCalendar release];
    
    return chineseCal_str;
}


如果需要也可以拆成单独的函数来方便获取,例如获取月份:

+(NSString *)getChineseMonthWithDate:(NSDate *)date {
    
    NSArray * chineseMonths = [NSArray arrayWithObjects:
                            @“正月”,@“二月”,@“三月”,@“四月”,@“五月”, @“六月”,@“七月”,@“八月”, 
                            @“九月”,@“十月”,@“冬月”,@“腊月”,无;
    
    
    NSCalendar * localeCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSChineseCalendar];
    
    unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
    
    NSDateComponents * localeComp = [localeCalendar components:unitFlags fromDate:date];
    
    // NSLog(@“%d_%d_%d%@”,localeComp.year,localeComp.month,localeComp.day,localeComp.date);
 
    NSString * m_str = [chineseMonths objectAtIndex:localeComp.month-1];
    
    [localeCalendar release];
    
    return m_str;
 
}


--------------------- 
作者:大酋长 
来源:CSDN 
原文:HTTPS://blog.csdn.net/zhao_yin/article/details/7244958  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值