获取农历方法

  • +(NSString*)getChineseCalendarWithDate:(NSDate *)date{
  • NSArray *chineseYears = [NSArray arrayWithObjects:
  • @"甲子", @"乙丑", @"丙寅", @"丁卯", @"戊辰", @"己巳", @"庚午", @"辛未", @"壬申", @"癸酉",
  • @"甲戌", @"乙亥", @"丙子", @"丁丑", @"戊寅", @"己卯", @"庚辰", @"辛己", @"壬午", @"癸未",
  • @"甲申", @"乙酉", @"丙戌", @"丁亥", @"戊子", @"己丑", @"庚寅", @"辛卯", @"壬辰", @"癸巳",
  • @"甲午", @"乙未", @"丙申", @"丁酉", @"戊戌", @"己亥", @"庚子", @"辛丑", @"壬寅", @"癸丑",
  • @"甲辰", @"乙巳", @"丙午", @"丁未", @"戊申", @"己酉", @"庚戌", @"辛亥", @"壬子", @"癸丑",
  • @"甲寅", @"乙卯", @"丙辰", @"丁巳", @"戊午", @"己未", @"庚申", @"辛酉", @"壬戌", @"癸亥", nil];
  • NSArray *chineseMonths=[NSArray arrayWithObjects:
  • @"正月", @"二月", @"三月", @"四月", @"五月", @"六月", @"七月", @"八月",
  • @"九月", @"十月", @"冬月", @"腊月", nil];
  • NSArray *chineseDays=[NSArray arrayWithObjects:
  • @"初一", @"初二", @"初三", @"初四", @"初五", @"初六", @"初七", @"初八", @"初九", @"初十",
  • @"十一", @"十二", @"十三", @"十四", @"十五", @"十六", @"十七", @"十八", @"十九", @"二十",
  • @"廿一", @"廿二", @"廿三", @"廿四", @"廿五", @"廿六", @"廿七", @"廿八", @"廿九", @"三十", nil];
  • 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;
  • }




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

[cpp] view plaincopyprint?

  • +(NSString*)getChineseMonthWithDate:(NSDate *)date{
  • NSArray *chineseMonths=[NSArray arrayWithObjects:
  • @"正月", @"二月", @"三月", @"四月", @"五月", @"六月", @"七月", @"八月",
  • @"九月", @"十月", @"冬月", @"腊月", nil];
  • 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;
  • }




另外如果不知道如何获取NSDate 那么额外加个方法用来根据string和format来得到对应的 NSDate:

  • +(NSDate *)getDateWithDateString:(NSString *)strDate formatString:(NSString*)strFormat{
  • NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
  • NSTimeZone *timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
  • //NSTimeZone *localTime = [NSTimeZone localTimeZone];
  • [formatter setTimeZone:timeZone];
  • [formatter setDateFormat : strFormat];
  • NSDate *dateTime = [formatter dateFromString:strDate];
  • return dateTime;
  • }


使用方法类似这样,比如获取世界末日那一时刻的Date~~~

  • NSDate *date = [Tool_Functions getDateWithDateString:@"2012-12-21 15:14:35"
  • formatString:@"yyyy-MM-dd HH:mm:ss"];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值