首先创建一个农历文件

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
View Code

相关文章: