日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS 获取农历方法(转)

發布時間:2024/7/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS 获取农历方法(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

聲明:以下為使用iOS的 NSChineseCalendar 網上之前發現有人說這個方法不是完全準確,有些日期會顯示的不對,本人沒有驗證過,也實在懶得用C++那套方法去實現。

?

另外我做的不過是個簡單的功能,還不包括什么節氣 節日那些復雜有高端的功能,如果哪位大神不吝賜教 小弟在此感激了。

?

方法總的說來就這樣:?

?

1 +(NSString*)getChineseCalendarWithDate:(NSDate *)date{ 2 3 4 5 NSArray *chineseYears = [NSArray arrayWithObjects: 6 7 @"甲子", @"乙丑", @"丙寅", @"丁卯", @"戊辰", @"己巳", @"庚午", @"辛未", @"壬申", @"癸酉", 8 9 @"甲戌", @"乙亥", @"丙子", @"丁丑", @"戊寅", @"己卯", @"庚辰", @"辛己", @"壬午", @"癸未", 10 11 @"甲申", @"乙酉", @"丙戌", @"丁亥", @"戊子", @"己丑", @"庚寅", @"辛卯", @"壬辰", @"癸巳", 12 13 @"甲午", @"乙未", @"丙申", @"丁酉", @"戊戌", @"己亥", @"庚子", @"辛丑", @"壬寅", @"癸丑", 14 15 @"甲辰", @"乙巳", @"丙午", @"丁未", @"戊申", @"己酉", @"庚戌", @"辛亥", @"壬子", @"癸丑", 16 17 @"甲寅", @"乙卯", @"丙辰", @"丁巳", @"戊午", @"己未", @"庚申", @"辛酉", @"壬戌", @"癸亥", nil]; 18 19 20 21 NSArray *chineseMonths=[NSArray arrayWithObjects: 22 23 @"正月", @"二月", @"三月", @"四月", @"五月", @"六月", @"七月", @"八月", 24 25 @"九月", @"十月", @"冬月", @"臘月", nil]; 26 27 28 29 30 31 NSArray *chineseDays=[NSArray arrayWithObjects: 32 33 @"初一", @"初二", @"初三", @"初四", @"初五", @"初六", @"初七", @"初八", @"初九", @"初十", 34 35 @"十一", @"十二", @"十三", @"十四", @"十五", @"十六", @"十七", @"十八", @"十九", @"二十", 36 37 @"廿一", @"廿二", @"廿三", @"廿四", @"廿五", @"廿六", @"廿七", @"廿八", @"廿九", @"三十", nil]; 38 43 NSCalendar *localeCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSChineseCalendar]; 44 45 46 47 unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; 48 49 50 51 NSDateComponents *localeComp = [localeCalendar components:unitFlags fromDate:date]; 52 53 54 55 NSLog(@"%d_%d_%d %@",localeComp.year,localeComp.month,localeComp.day, localeComp.date); 56 57 58 59 NSString *y_str = [chineseYears objectAtIndex:localeComp.year-1]; 60 61 NSString *m_str = [chineseMonths objectAtIndex:localeComp.month-1]; 62 63 NSString *d_str = [chineseDays objectAtIndex:localeComp.day-1]; 64 65 66 67 NSString *chineseCal_str =[NSString stringWithFormat: @"%@_%@_%@",y_str,m_str,d_str]; 68 69 70 71 [localeCalendar release]; 72 73 74 75 return chineseCal_str; 76 77 }

?

如果需要也可以拆成單獨的函數來方便獲取,例如獲取月份:

1 +(NSString*)getChineseMonthWithDate:(NSDate *)date{ 2 3 4 5 NSArray *chineseMonths=[NSArray arrayWithObjects: 6 7 @"正月", @"二月", @"三月", @"四月", @"五月", @"六月", @"七月", @"八月", 8 9 @"九月", @"十月", @"冬月", @"臘月", nil]; 10 11 12 13 14 15 NSCalendar *localeCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSChineseCalendar]; 16 17 18 19 unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; 20 21 22 23 NSDateComponents *localeComp = [localeCalendar components:unitFlags fromDate:date]; 24 25 26 27 //NSLog(@"%d_%d_%d %@",localeComp.year,localeComp.month,localeComp.day, localeComp.date); 28 29 30 31 NSString *m_str = [chineseMonths objectAtIndex:localeComp.month-1]; 32 33 34 35 [localeCalendar release]; 36 37 38 39 return m_str; 40 41 42 43 }

?

?

?另外如果不知道如何獲取NSDate 那么額外加個方法用來根據string和format來得到對應的 NSDate:

1 +(NSDate *)getDateWithDateString:(NSString *)strDate formatString:(NSString*)strFormat{ 2 3 4 5 NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; 6 7 8 9 NSTimeZone *timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 10 11 12 13 //NSTimeZone *localTime = [NSTimeZone localTimeZone]; 14 15 16 17 [formatter setTimeZone:timeZone]; 18 19 [formatter setDateFormat : strFormat]; 20 21 22 23 NSDate *dateTime = [formatter dateFromString:strDate]; 24 25 26 27 return dateTime; 28 29 }

?

使用方法類似這樣,比如獲取世界末日那一時刻的Date~~~

?

1 NSDate *date = [Tool_Functions getDateWithDateString:@"2012-12-21 15:14:35" 2 3 formatString:@"yyyy-MM-dd HH:mm:ss"];

?

?

轉載文章,原文點擊

轉載于:https://www.cnblogs.com/tig666666/p/6603490.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的IOS 获取农历方法(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。