jgzhou
2021-04-01 3ab0da701943cf1b7f233d1d65016eac0827ee23
Lunar/Lunar/Tool/Lunar.h
@@ -159,8 +159,201 @@
@property (nonatomic, strong, readonly) EightChar *eightChar;
+ (instancetype)share;
- (instancetype)initWith:(NSInteger)year :(NSInteger)month :(NSInteger)day :(NSInteger)hour :(NSInteger)minute :(NSInteger)second;
- (Solar *)toSolar;
+ (instancetype)fromYmd:(NSInteger)lunarYear :(NSInteger)lunarMonth :(NSInteger)lunarDay;
+ (instancetype)fromYmdHms:(NSInteger)lunarYear :(NSInteger)lunarMonth :(NSInteger)lunarDay :(NSInteger)hour :(NSInteger)minute :(NSInteger)second;
+ (instancetype)fromDate:(NSDate *)date;
+ (CGFloat)nutationLon2:(CGFloat)t;
+ (CGFloat)eLon:(CGFloat)t :(NSInteger)n;
+ (CGFloat)gxcSunLon:(CGFloat)t;
+ (CGFloat)ev:(CGFloat)t;
+ (CGFloat)saLon:(CGFloat)t :(NSInteger)n;
+ (CGFloat)dtExt:(NSInteger)y :(NSInteger)jsd;
+ (CGFloat)dtCalc:(CGFloat)y;
+ (CGFloat)dtT:(CGFloat)t;
+ (CGFloat)saLonT:(CGFloat)w;
+ (CGFloat)qiLow:(CGFloat)w;
+ (CGFloat)saLonT2:(CGFloat)w;
+ (CGFloat)qiHigh:(CGFloat)w;
+ (CGFloat)calcJieQi:(CGFloat)jd;
+ (CGFloat)qiAccurate:(CGFloat)w;
+ (CGFloat)qiAccurate2:(CGFloat)jd;
- (void)computeJieQi;
- (void)computeYear;
- (void)computeMonth;
- (void)computeDay;
- (void)computeTime;
- (void)computeWeek;
- (void)compute;
- (NSString *)getYearGan;
- (NSString *)getYearGanByLiChun;
- (NSString *)getYearGanExact;
- (NSString *)getYearZhi;
- (NSString *)getYearZhiByLiChun;
- (NSString *)getYearZhiExact;
- (NSString *)getYearInGanZhi;
- (NSString *)getYearInGanZhiByLiChun;
- (NSString *)getYearInGanZhiExact;
- (NSString *)getMonthInGanZhi;
- (NSString *)getMonthInGanZhiExact;
- (NSString *)getMonthGan;
- (NSString *)getMonthGanExact;
- (NSString *)getMonthZhi;
- (NSString *)getMonthZhiExact;
- (NSString *)getDayInGanZhi;
- (NSString *)getDayInGanZhiExact;
- (NSString *)getDayInGanZhiExact2;
- (NSString *)getDayGan;
- (NSString *)getDayGanExact;
- (NSString *)getDayGanExact2;
- (NSString *)getDayZhi;
- (NSString *)getDayZhiExact;
- (NSString *)getDayZhiExact2;
- (NSString *)getYearShengXiao;
- (NSString *)getYearShengXiaoByLiChun;
- (NSString *)getYearShengXiaoExact;
- (NSString *)getMonthShengXiao;
- (NSString *)getDayShengXiao;
- (NSString *)getTimeShengXiao;
- (NSString *)getYearInChinese;
- (NSString *)getMonthInChinese;
- (NSString *)getDayInChinese;
- (NSString *)getTimeZhi;
- (NSString *)getTimeGan;
- (NSString *)getTimeInGanZhi;
- (NSString *)getSeason;
- (NSString *)getJie;
- (NSString *)getQi;
- (NSString *)getWeekInChinese;
- (NSString *)getXiu;
- (NSString *)getXiuLuck;
- (NSString *)getXiuSong;
- (NSString *)getZheng;
- (NSString *)getAnimal;
- (NSString *)getGong;
- (NSString *)getShou;
- (NSArray *)getFestivals;
- (NSArray *)getOtherFestivals;
- (NSString *)getPengZuGan;
- (NSString *)getPengZuZhi;
- (NSString *)getPositionXi;
- (NSString *)getDayPositionXi;
- (NSString *)getDayPositionXiDesc;
- (NSString *)getTimePositionXi;
- (NSString *)getTimePositionXiDesc;
- (NSString *)getDayPositionYangGui;
- (NSString *)getDayPositionYangGuiDesc;
- (NSString *)getTimePositionYangGui;
- (NSString *)getTimePositionYangGuiDesc;
- (NSString *)getDayPositionYinGui;
- (NSString *)getDayPositionYinGuiDesc;
- (NSString *)getTimePositionYinGui;
- (NSString *)getTimePositionYinGuiDesc;
- (NSString *)getPositionFu;
- (NSString *)getDayPositionFu;
- (NSString *)getDayPositionFuDesc;
- (NSString *)getTimePositionFu;
- (NSString *)getTimePositionFuDesc;
- (NSString *)getPositionCai;
- (NSString *)getDayPositionCai;
- (NSString *)getDayPositionCaiDesc;
- (NSString *)getTimePositionCai;
- (NSString *)getTimePositionCaiDesc;
- (NSString *)getChong;
- (NSString *)getDayChong;
- (NSString *)getTimeChong;
- (NSString *)getChongGan;
- (NSString *)getDayChongGan;
- (NSString *)getTimeChongGan;
- (NSString *)getChongGanTie;
- (NSString *)getDayChongGanTie;
- (NSString *)getTimeChongGanTie;
- (NSString *)getChongShengXiao;
- (NSString *)getDayChongShengXiao;
- (NSString *)getTimeChongShengXiao;
- (NSString *)getDayChongDesc;
- (NSString *)getTimeChongDesc;
- (NSString *)getDaySha;
- (NSString *)getTimeSha;
- (NSString *)getYearNaYin;
- (NSString *)getMonthNaYin;
- (NSString *)getDayNaYin;
- (NSString *)getTimeNaYin;
- (NSArray *)getBaZi;
- (NSArray *)getBaZiWuXing;
- (NSArray *)getBaZiNaYin;
- (NSArray *)getBaZiShiShenGan;
- (NSArray *)getBaZiShiShenZhi;
- (NSArray *)getBaZiShiShenYearZhi;
- (NSArray *)getBaZiShiShenMonthZhi;
- (NSArray *)getBaZiShiShenDayZhi;
- (NSArray *)getBaZiShiShenTimeZhi;
- (NSString *)getZhiXing;
- (NSString *)getDayTianShen;
- (NSString *)getTimeTianShen;
- (NSString *)getDayTianShenType;
- (NSString *)getTimeTianShenType;
- (NSString *)getDayTianShenLuck;
- (NSString *)getTimeTianShenLuck;
- (NSString *)getDayPositionTai;
- (NSString *)getMonthPositionTai;
- (NSArray *)getDayYi;
- (NSArray *)getTimeYi;
- (NSArray *)getDayJi;
- (NSArray *)getTimeJi;
- (NSArray *)getDayJiShen;
- (NSArray *)getDayXiongSha;
- (NSString *)getYueXiang;
- (NineStar *)getYearNineStar;
- (NineStar *)getMonthNineStar;
- (NineStar *)getDayNineStar;
- (NineStar *)getTimeNineStar;
- (NSDictionary *)getJieQiTable;
- (JieQi *)getNearJieQi:(BOOL)forward :(nullable NSArray *)conditions;
- (JieQi *)getNextJie;
- (JieQi *)getPrevJie;
- (JieQi *)getNextQi;
- (JieQi *)getPrevQi;
- (JieQi *)getNextJieQi;
- (JieQi *)getPrevJieQi;
- (NSString *)getJieQi;
- (JieQi *)getCurrentJieQi;
- (JieQi *)getCurrentJie;
- (JieQi *)getCurrentQi;
- (EightChar *)getEightChar;
- (Lunar *)next:(NSInteger)days;
- (NSString *)toString;
- (NSString *)toFullString;
- (NSString *)getYearXun;
- (NSString *)getYearXunByLiChun;
- (NSString *)getYearXunExact;
- (NSString *)getYearXunKong;
- (NSString *)getYearXunKongByLiChun;
- (NSString *)getYearXunKongExact;
- (NSString *)getMonthXun;
- (NSString *)getMonthXunExact;
- (NSString *)getMonthXunKong;
- (NSString *)getMonthXunKongExact;
- (NSString *)getDayXun;
- (NSString *)getDayXunExact;
- (NSString *)getDayXunExact2;
- (NSString *)getDayXunKong;
- (NSString *)getDayXunKongExact;
- (NSString *)getDayXunKongExact2;
- (NSString *)getTimeXun;
- (NSString *)getTimeXunKong;
- (ShuJiu *)getShuJiu;
- (Fu *)getFu;
- (NSString *)getLiuYao;
- (NSString *)getWuHou;
@end
/**
 * 阳历工具,基准日期为1901年1月1日,对应农历1900年十一月十一
@@ -218,7 +411,6 @@
@property (nonatomic, assign) NSInteger BASE_DAY_GAN_ZHI_INDEX;
@property (nonatomic, assign) NSInteger BASE_MONTH_ZHI_INDEX;
@property (nonatomic, assign) NSInteger BASE_WEEK_INDEX;
@property (nonatomic, strong) NSArray *LEAP_MONTH_YEAR;
@property (nonatomic, strong) NSArray *LUNAR_MONTH;
@property (nonatomic, strong) NSArray *XUN;
@@ -231,7 +423,6 @@
@property (nonatomic, strong) NSArray *POSITION_YIN_GUI;
@property (nonatomic, strong) NSArray *POSITION_FU;
@property (nonatomic, strong) NSArray *POSITION_CAI;
@property (nonatomic, strong) NSArray *POSITION_TAI_DAY;
@property (nonatomic, strong) NSArray *POSITION_TAI_MONTH;
@property (nonatomic, strong) NSArray *ZHI;
@@ -239,14 +430,10 @@
@property (nonatomic, strong) NSArray *ZHI_XING;
@property (nonatomic, strong) NSArray *TIAN_SHEN;
@property (nonatomic, strong) NSArray *YI_JI;
@property (nonatomic, strong) NSString *DAY_YI_JI;
@property (nonatomic, strong) NSString *TIME_YI_JI;
@property (nonatomic, strong) NSArray *SHEN_SHA;
@property (nonatomic, strong) NSString *DAY_SHEN_SHA;
@property (nonatomic, strong) NSDictionary *ZHI_TIAN_SHEN_OFFSET;// 月份地支对应天神偏移下标
@property (nonatomic, strong) NSDictionary *TIAN_SHEN_TYPE;// 天神类型:黄道,黑道
@property (nonatomic, strong) NSDictionary *TIAN_SHEN_TYPE_LUCK;// 天神类型吉凶
@@ -254,19 +441,14 @@
@property (nonatomic, strong) NSArray *PENG_ZU_ZHI;
@property (nonatomic, strong) NSArray *NUMBER;
@property (nonatomic, strong) NSArray *MONTH;
@property (nonatomic, strong) NSArray *SEASON;
@property (nonatomic, strong) NSArray *SHENG_XIAO;
@property (nonatomic, strong) NSArray *QI;
@property (nonatomic, strong) NSArray *JIE;
@property (nonatomic, strong) NSArray *DAY;
@property (nonatomic, strong) NSArray *YUE_XIANG;
@property (nonatomic, strong) NSDictionary *FESTIVAL;//农历日期对应的节日
@property (nonatomic, strong) NSDictionary *OTHER_FESTIVAL;//农历日期对应的非正式节日
@property (nonatomic, strong) NSDictionary *XIU;// 28星宿对照表,地支+星期
@property (nonatomic, strong) NSDictionary *XIU_LUCK;// 星宿对应吉凶
@property (nonatomic, strong) NSDictionary *XIU_SONG;// 星宿歌
@@ -315,6 +497,7 @@
@end
/**
 * 节假日
 */
@@ -333,8 +516,10 @@
@property (nonatomic, strong, readonly) NSString *target;
- (instancetype)initWith:(NSString *)day :(NSString *)name :(BOOL)word :(NSString *)target;
- (NSString *)toString;
@end
/**
 * 法定节假日工具(自2001年12月29日起)
@@ -444,6 +629,13 @@
//阴历
@property (nonatomic, strong, readonly) Lunar *lunar;
- (instancetype)initWith:(Yun *)yun :(NSInteger)index;
- (NSString *)getGanZhi;
- (NSString *)getXun;
- (NSString *)getXunKong;
- (NSArray *)getLiuNian;
- (NSArray *)getXiaoYun;
@end
@@ -462,6 +654,7 @@
+ (instancetype)share;
+ (instancetype)fromLunar:(Lunar *)lunar;
- (NSString *)toString;
- (NSString *)getYear;
- (NSString *)getMonth;
@@ -488,6 +681,23 @@
- (NSArray *)getDayShiShenZhi;
- (NSArray *)getTimeShiShenZhi;
- (NSString *)getTimeDiShi;
- (NSString *)getTaiYuan;
- (NSString *)getTaiYuanNaYin;
- (NSString *)getMingGong;
- (NSString *)getMingGongNaYin;
- (NSString *)getShenGong;
- (NSString *)getShenGongNaYin;
- (Yun *)getYun:(NSInteger)gender;
- (NSString *)getYearXun;
- (NSString *)getYearXunKong;
- (NSString *)getMonthXun;
- (NSString *)getMonthXunKong;
- (NSString *)getDayXun;
- (NSString *)getDayXunKong;
- (NSString *)getTimeXun;
- (NSString *)getTimeXunKong;
@end
@@ -505,7 +715,7 @@
@property (nonatomic, assign, readonly) NSInteger index;
- (instancetype)initWith:(NSString *)name :(NSInteger)index;
- (NSString *)toFullString;
@end
@@ -550,6 +760,10 @@
@property (nonatomic, strong, readonly) Lunar *lunar;
- (instancetype)initWith:(DaYun *)daYun :(NSInteger)index;
- (NSString *)getGanZhi;
- (NSString *)getXun;
- (NSString *)getXunKong;
- (NSArray *)getLiuYue;
@end
@@ -566,6 +780,10 @@
@property (nonatomic, strong, readonly) LiuNian *liuNian;
- (instancetype)initWith:(LiuNian *)liuNian :(NSInteger)index;
- (NSString *)getMonthInChinese;
- (NSString *)getGanZhi;
- (NSString *)getXun;
- (NSString *)getXunKong;
@end
@@ -597,6 +815,23 @@
- (instancetype)initWith:(NSInteger)index;
- (NSString *)getNumber;
- (NSString *)getColor;
- (NSString *)getWuXing;
- (NSString *)getPosition;
- (NSString *)getPositionDesc;
- (NSString *)getNameInXuanKong;
- (NSString *)getNameInBeiDou;
- (NSString *)getNameInQiMen;
- (NSString *)getNameInTaiYi;
- (NSString *)getLuckInQiMen;
- (NSString *)getLuckInXuanKong;
- (NSString *)getYinYangInQiMen;
- (NSString *)getTypeInTaiYi;
- (NSString *)getBaMenInQiMen;
- (NSString *)getSongInTaiYi;
- (NSString *)toString;
- (NSString *)toFullString;
@end
@@ -613,6 +848,8 @@
@property (nonatomic, assign, readonly) NSInteger index;
- (instancetype)initWith:(NSString *)name :(NSInteger)index;
- (NSString *)toString;
- (NSString *)toFullString;
@end
@@ -648,15 +885,31 @@
+ (instancetype)share;
- (instancetype)initWith:(NSInteger)year :(NSInteger)month :(NSInteger)day :(NSInteger)hour :(NSInteger)minute :(NSInteger)second;
+ (instancetype)fromYmd:(NSInteger)year :(NSInteger)month :(NSInteger)day;
+ (instancetype)fromYmdHms:(NSInteger)year :(NSInteger)month :(NSInteger)day :(NSInteger)hour :(NSInteger)minute :(NSInteger)second;
+ (instancetype)fromDate:(NSDate *)date;
+ (instancetype)fromJulianDay:(CGFloat)julianDay;
- (NSString *)toYmd;
- (NSString *)toYmdHms;
- (CGFloat)getJulianDay;
- (Lunar *)getLunar;
+ (NSArray *)fromBaZi:(NSString *)yearGanZhi :(NSString *)monthGanZhi :(NSString *)dayGanZhi :(NSString *)timeGanZhi;
+ (NSArray *)fromBaZiBySect:(NSString *)yearGanZhi :(NSString *)monthGanZhi :(NSString *)dayGanZhi :(NSString *)timeGanZhi :(NSInteger)sect;
- (NSString *)toString;
- (NSString *)toFullString;
- (BOOL)isLeapYear;
- (NSInteger)getWeek;
- (NSString *)getWeekInChinese;
- (NSString *)getXingZuo;
- (Solar *)next:(NSInteger)days;
- (Solar *)next:(NSInteger)days :(BOOL)onlyWorkday;
- (NSArray *)getFestivals;
- (NSArray *)getOtherFestivals;
@end
@@ -676,7 +929,14 @@
@property (nonatomic, assign) NSInteger MONTH_COUNT;
+ (instancetype)share;
- (instancetype)initWith:(NSInteger)year :(NSInteger)month;
- (NSString *)toString;
- (NSString *)toFullString;
+ (instancetype)fromYm:(NSInteger)year :(NSInteger)month;
+ (instancetype)fromDate:(NSDate *)date;
- (NSInteger)getIndex;
- (NSArray *)getMonths;
- (SolarHalfYear *)next:(NSInteger)halfYears;
@end
@@ -692,7 +952,13 @@
//月
@property (nonatomic, assign, readonly) NSInteger month;
- (instancetype)initWith:(NSInteger)year :(NSInteger)month;
- (NSString *)toString;
- (NSString *)toFullString;
+ (SolarMonth *)fromYm:(NSInteger)year :(NSInteger)month;
+ (SolarMonth *)fromDate:(NSDate *)date;
- (NSArray *)getDays;
- (SolarMonth *)next:(NSInteger)months;
@end
@@ -712,6 +978,14 @@
@property (nonatomic, assign) NSInteger MONTH_COUNT;
+ (instancetype)share;
- (instancetype)initWith:(NSInteger)year :(NSInteger)month;
- (NSString *)toString;
- (NSString *)toFullString;
+ (instancetype)fromYm:(NSInteger)year :(NSInteger)month;
+ (instancetype)fromDate:(NSDate *)date;
- (NSInteger)getIndex;
- (NSArray *)getMonths;
- (SolarSeason *)next:(NSInteger)seasons;
@end
@@ -733,6 +1007,17 @@
//星期几作为一周的开始,1234560分别代表星期一至星期天
@property (nonatomic, assign, readonly) NSInteger start;
- (instancetype)initWith:(NSInteger)year :(NSInteger)month :(NSInteger)day :(NSInteger)start;
- (NSString *)toString;
- (NSString *)toFullString;
+ (instancetype)fromYmd:(NSInteger)year :(NSInteger)month :(NSInteger)day :(NSInteger)start;
+ (instancetype)fromDate:(NSDate *)date :(NSInteger)start;
- (NSInteger)getIndex;
- (SolarWeek *)next:(NSInteger)weeks :(BOOL)separateMonth;
- (Solar *)getFirstDay;
- (Solar *)getFirstDayInMonth;
- (NSArray *)getDays;
- (NSArray *)getDaysInMonth;
@end
@@ -749,6 +1034,13 @@
@property (nonatomic, assign) NSInteger MONTH_COUNT;
+ (instancetype)share;
- (instancetype)initWith:(NSInteger)year;
- (NSString *)toString;
- (NSString *)toFullString;
+ (SolarYear *)fromYear:(NSInteger)year;
+ (SolarYear *)fromDate:(NSDate *)date;
- (NSArray *)getMonths;
- (SolarYear *)next:(NSInteger)years;
@end
@@ -777,6 +1069,9 @@
@property (nonatomic, assign, readonly) BOOL forward;
- (instancetype)initWith:(DaYun *)daYun :(NSInteger)index :(BOOL)forward;
- (NSString *)getGanZhi;
- (NSString *)getXun;
- (NSString *)getXunKong;
@end
@@ -803,7 +1098,11 @@
//阴历日期
@property (nonatomic, strong, readonly) Lunar *lunar;
- (instancetype)initWith:(EightChar *)eightChar :(NSInteger)gender;
- (Solar *)getStartSolar;
- (void)computeStart;
- (NSArray *)getDaYun;
@end