IOS 获取农历方法
来源:互联网 发布:62数据导出脚本 编辑:程序博客网 时间:2024/04/28 10:23
声明:以下为使用IOS的 NSChineseCalendar 网上之前发现有人说这个方法不是完全准确,有些日期会显示的不对,本人没有验证过,也实在懒得用C++那套方法去实现。
另外我做的不过是个简单的功能,还不包括什么节气 节日那些复杂有高端的功能,如果哪位大神不吝赐教 小弟在此感激了。
方法总的说来就这样:
+(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;}
如果需要也可以拆成单独的函数来方便获取,例如获取月份:
+(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"];
转载请标明来自:http://blog.csdn.net/zhao_yin/article/details/7244958
- IOS 获取农历方法
- IOS 获取农历方法
- 获取农历方法
- 获取农历方法
- IOS 获取农历节日 节气
- 获取农历节日、节气方法
- android获取农历的方法
- iOS 获取公历、农历日期的年月日
- JS获取农历日期
- JAVA 获取农历
- JAVA 获取农历
- java获取农历
- 获取农历节日.节气
- JAVA 获取农历
- js-- 农历的获取
- js获取农历
- ios阳历转农历
- ios - 农历公历互转 农历选择器
- poj3666
- Ext.Net 1.x_Ext.Net.日期格式化
- hibernate 概要
- varchar和Nvarchar区别
- 2011年最新会计科目(贸易类小企业版)
- IOS 获取农历方法
- FIMD架构分析
- 谷歌“不支持”CDMA:实为ASOP ROM变动
- 水晶报表拖或拉方式实现
- Sicily 1509. Rails
- java冒泡算法获取最小值
- 《AppStore审核指南》中文版
- 深入理解const
- Sicily 1515. 魔版C