首先创建一个农历文件
LunarCalendar.h
1 // 2 // LunarCalendar.h 3 // Hnair4iPhone 4 // 5 // Created by yingkong1987 on 13-10-10. 6 // Copyright (c) 2013年 yingkong1987. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 11 struct SolarTerm 12 { 13 __unsafe_unretained NSString *solarName; 14 int solarDate; 15 }; 16 17 @interface LunarCalendar : NSObject 18 { 19 NSArray *HeavenlyStems; 20 NSArray *EarthlyBranches; 21 NSArray *LunarZodiac; 22 NSArray *SolarTerms; 23 NSArray *arrayMonth; 24 NSArray *arrayDay; 25 26 NSDate *thisdate; 27 28 int year; 29 int month; 30 int day; 31 32 int lunarYear; //农历年 33 int lunarMonth; //农历月 34 int doubleMonth; //闰月 35 bool isLeap; //是否闰月标记 36 int lunarDay; //农历日 37 38 struct SolarTerm solarTerm[2]; 39 40 NSString *yearHeavenlyStem; 41 NSString *monthHeavenlyStem; 42 NSString *dayHeavenlyStem; 43 44 NSString *yearEarthlyBranch; 45 NSString *monthEarthlyBranch; 46 NSString *dayEarthlyBranch; 47 48 NSString *monthLunar; 49 NSString *dayLunar; 50 51 NSString *zodiacLunar; 52 53 NSString *solarTermTitle; 54 } 55 56 -(void)loadWithDate:(NSDate *)date; 57 58 -(void)InitializeValue; 59 -(int)LunarYearDays:(int)y; 60 -(int)DoubleMonth:(int)y; 61 -(int)DoubleMonthDays:(int)y; 62 -(int)MonthDays:(int)y :(int)m; 63 -(void)ComputeSolarTerm; 64 65 -(double)Term:(int)y :(int)n :(bool)pd; 66 -(double)AntiDayDifference:(int)y :(double)x; 67 -(double)EquivalentStandardDay:(int)y :(int)m :(int)d; 68 -(int)IfGregorian:(int)y :(int)m :(int)d :(int)opt; 69 -(int)DayDifference:(int)y :(int)m :(int)d; 70 -(double)Tail:(double)x; 71 72 -(NSString *)MonthLunar; 73 -(NSString *)DayLunar; 74 -(NSString *)ZodiacLunar; 75 -(NSString *)YearHeavenlyStem; 76 -(NSString *)MonthHeavenlyStem; 77 -(NSString *)DayHeavenlyStem; 78 -(NSString *)YearEarthlyBranch; 79 -(NSString *)MonthEarthlyBranch; 80 -(NSString *)DayEarthlyBranch; 81 -(NSString *)SolarTermTitle; 82 -(bool)IsLeap; 83 -(int)GregorianYear; 84 -(int)GregorianMonth; 85 -(int)GregorianDay; 86 -(int)Weekday; 87 -(NSString *)Constellation; 88 89 @end 90 91 92 @interface NSDate (LunarCalendar) 93 94 /**************************************************** 95 *@Description:获得NSDate对应的中国日历(农历)的NSDate 96 *@Params:nil 97 *@Return:NSDate对应的中国日历(农历)的LunarCalendar 98 ****************************************************/ 99 - (LunarCalendar *)chineseCalendarDate; 100 101 102 @end