From 3ab0da701943cf1b7f233d1d65016eac0827ee23 Mon Sep 17 00:00:00 2001
From: jgzhou <996155731@qq.com>
Date: Thu, 01 Apr 2021 13:49:46 +0000
Subject: [PATCH] 完善

---
 Lunar/Lunar/Tool/Lunar.h |  331 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 315 insertions(+), 16 deletions(-)

diff --git a/Lunar/Lunar/Tool/Lunar.h b/Lunar/Lunar/Tool/Lunar.h
index dbc9078..4b98249 100644
--- a/Lunar/Lunar/Tool/Lunar.h
+++ b/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
 

--
Gitblit v1.9.1