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