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 ++++++++++++++++++++++++++-
 Lunar/Lunar/Tool/Lunar.m     |  311 ++++++++-----------------
 Lunar/Lunar/ViewController.m |   71 +++++
 3 files changed, 491 insertions(+), 222 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
 
diff --git a/Lunar/Lunar/Tool/Lunar.m b/Lunar/Lunar/Tool/Lunar.m
index 359eaf2..62d8613 100644
--- a/Lunar/Lunar/Tool/Lunar.m
+++ b/Lunar/Lunar/Tool/Lunar.m
@@ -165,6 +165,7 @@
         }
         lastDate = [LunarUtil getDaysOfMonth:lunarYear :lunarMonth];
     }
+    
     return [[self alloc] initWith:lunarYear :lunarMonth :lunarDay :solar.hour :solar.minute :solar.second];
 }
 
@@ -1178,15 +1179,6 @@
 }
 
 /**
- * 获取日喜神方位描述
- * @return string 喜神方位描述,如东北
- */
-- (NSString *)getPositionXiDesc
-{
-  return [self getDayPositionXiDesc];
-}
-
-/**
  * 获取日喜神方位
  * @return string 喜神方位,如艮
  */
@@ -1226,24 +1218,6 @@
  * 获取日阳贵神方位
  * @return string 阳贵神方位,如艮
  */
-- (NSString *)getPositionYangGui
-{
-  return [self getDayPositionYangGui];
-}
-
-/**
- * 获取日阳贵神方位描述
- * @return string 阳贵神方位描述,如东北
- */
-- (NSString *)getPositionYangGuiDesc
-{
-  return [self getDayPositionYangGuiDesc];
-}
-
-/**
- * 获取日阳贵神方位
- * @return string 阳贵神方位,如艮
- */
 - (NSString *)getDayPositionYangGui
 {
   return [LunarUtil share].POSITION_YANG_GUI[_dayGanIndex + 1];
@@ -1274,24 +1248,6 @@
 - (NSString *)getTimePositionYangGuiDesc
 {
     return [LunarUtil share].POSITION_DESC[[self getTimePositionYangGui]];
-}
-
-/**
- * 获取日阴贵神方位
- * @return string 阴贵神方位,如艮
- */
-- (NSString *)getPositionYinGui
-{
-    return [self getDayPositionYinGui];
-}
-
-/**
- * 获取日阴贵神方位描述
- * @return string 阴贵神方位描述,如东北
- */
-- (NSString *)getPositionYinGuiDesc
-{
-    return [self getDayPositionYinGuiDesc];
 }
 
 /**
@@ -1340,15 +1296,6 @@
 }
 
 /**
- * 获取日福神方位描述
- * @return string 福神方位描述,如东北
- */
-- (NSString *)getPositionFuDesc
-{
-    return [self getDayPositionFuDesc];
-}
-
-/**
  * 获取日福神方位
  * @return string 福神方位,如艮
  */
@@ -1391,15 +1338,6 @@
 - (NSString *)getPositionCai
 {
   return [self getDayPositionCai];
-}
-
-/**
- * 获取日财神方位描述
- * @return string 财神方位描述,如东北
- */
-- (NSString *)getPositionCaiDesc
-{
-  return [self getDayPositionCaiDesc];
 }
 
 /**
@@ -1561,15 +1499,6 @@
 }
 
 /**
- * 获取冲描述
- * @return string 冲描述,如(壬申)猴
- */
-- (NSString *)getChongDesc
-{
-  return [self getDayChongDesc];
-}
-
-/**
  * 获取日冲描述
  * @return string 日冲描述,如(壬申)猴
  */
@@ -1585,15 +1514,6 @@
 - (NSString *)getTimeChongDesc
 {
     return [NSString stringWithFormat:@"(%@%@)%@", [self getTimeChongGan], [self getTimeChong], [self getTimeChongShengXiao]];
-}
-
-/**
- * 获取煞
- * @return string 煞,如北
- */
-- (NSString *)getSha
-{
-    return [self getDaySha];
 }
 
 /**
@@ -2053,7 +1973,7 @@
  * @param conditions array|null 过滤条件,如果设置过滤条件,仅返回匹配该名称的
  * @return JieQi|null 节气
  */
-- (JieQi *)getNearJieQi:(BOOL)forward :(NSArray *)conditions
+- (JieQi *)getNearJieQi:(BOOL)forward :(nullable NSArray *)conditions
 {
     NSString *name = nil;
     Solar *near = nil;
@@ -2372,9 +2292,9 @@
     [s appendString:@"]("];
     [s appendFormat:@"%@", [self getDayPositionCaiDesc]];
     [s appendString:@") 冲["];
-    [s appendFormat:@"%@", [self getChongDesc]];
+    [s appendFormat:@"%@", [self getDayChongDesc]];
     [s appendString:@"] 煞["];
-    [s appendFormat:@"%@", [self getSha]];
+    [s appendFormat:@"%@", [self getDaySha]];
     [s appendString:@"]"];
     return s;
 }
@@ -2918,19 +2838,19 @@
             d = 29;
         }
     } else if (9 <= month && month <= 12) {
-        NSInteger v = [[LunarUtil share].LUNAR_MONTH[2*index + 1] integerValue];
+        NSInteger v = [[LunarUtil share].LUNAR_MONTH[2*index+1] integerValue];
         NSInteger l = month - 9;
         if (((v >> l) & 0x01) == 1) {
             d = 29;
         }
     } else {
-        NSInteger v = [[LunarUtil share].LUNAR_MONTH[2*index + 1] integerValue];
+        NSInteger v = [[LunarUtil share].LUNAR_MONTH[2*index+1] integerValue];
         v = (v >> 4) & 0x0F;
         if (v != labs(month)) {
             d = 0;
         } else {
             d = 29;
-            for (NSNumber * i in [LunarUtil share].LUNAR_MONTH) {
+            for (NSNumber * i in [LunarUtil share].LEAP_MONTH_YEAR) {
                 if ([i integerValue] == index) {
                     d = 30;
                     break;
@@ -3904,15 +3824,6 @@
 }
 
 /**
- * 获取阴历对象
- * @return Lunar 阴历对象
- */
-- (Lunar *)getLunar
-{
-    return _lunar;
-}
-
-/**
  * 获取年柱
  * @return string 年柱
  */
@@ -4431,95 +4342,95 @@
     return [[LunarUtil share].NAYIN objectForKey:[self getShenGong]];
 }
 
-///**
-// * 获取运
-// * @param gender 性别,1男,0女
-// * @return Yun 运
-// */
-//- (Yun *)getYun:(NSInteger)gender
-//{
-//  return new Yun($this, $gender);
-//}
-//
-///**
-// * 获取年柱所在旬
-// * @return string 旬
-// */
-//- (NSString *)getYearXun
-//{
-//    return [_lunar getYearXunExact];
-//}
-//
-///**
-// * 获取年柱旬空(空亡)
-// * @return string 旬空(空亡)
-// */
-//- (NSString *) getYearXunKong
-//{
-//    return [_lunar getYearXunKongExact];
-//}
-//
-///**
-// * 获取月柱所在旬
-// * @return string 旬
-// */
-//- (NSString *)getMonthXun
-//{
-//    return [_lunar getMonthXunExact];
-//}
-//
-///**
-// * 获取月柱旬空(空亡)
-// * @return string 旬空(空亡)
-// */
-//- (NSString *)getMonthXunKong
-//{
-//    return [_lunar getMonthXunKongExact];
-//}
-//
-///**
-// * 获取日柱所在旬
-// * @return string 旬
-// */
-//- (NSString *)getDayXun
-//{
-//    if (_sect == 2) {
-//        return [_lunar getDayXunExact2];
-//    } else {
-//        return [_lunar getDayXunExact];
-//    }
-//}
-//
-///**
-// * 获取日柱旬空(空亡)
-// * @return string 旬空(空亡)
-// */
-//- (NSString *)getDayXunKong
-//{
-//    if (_sect == 2) {
-//        return [_lunar getDayXunKongExact2];
-//    } else {
-//        return [_lunar getDayXunKongExact];
-//    }
-//}
-//
-///**
-// * 获取时柱所在旬
-// * @return string 旬
-// */
-//- (NSString *)getTimeXun
-//{
-//    return [_lunar getTimeXun];
-//}
-//
-///**
-// * 获取时柱旬空(空亡)
-// * @return string 旬空(空亡)
-// */
-//- (NSString *)getTimeXunKong
-//{
-//    return [_lunar getTimeXunKong];
-//}
+/**
+ * 获取运
+ * @param gender 性别,1男,0女
+ * @return Yun 运
+ */
+- (Yun *)getYun:(NSInteger)gender
+{
+    return [[Yun alloc] initWith:self :gender];
+}
+
+/**
+ * 获取年柱所在旬
+ * @return string 旬
+ */
+- (NSString *)getYearXun
+{
+    return [_lunar getYearXunExact];
+}
+
+/**
+ * 获取年柱旬空(空亡)
+ * @return string 旬空(空亡)
+ */
+- (NSString *)getYearXunKong
+{
+    return [_lunar getYearXunKongExact];
+}
+
+/**
+ * 获取月柱所在旬
+ * @return string 旬
+ */
+- (NSString *)getMonthXun
+{
+    return [_lunar getMonthXunExact];
+}
+
+/**
+ * 获取月柱旬空(空亡)
+ * @return string 旬空(空亡)
+ */
+- (NSString *)getMonthXunKong
+{
+    return [_lunar getMonthXunKongExact];
+}
+
+/**
+ * 获取日柱所在旬
+ * @return string 旬
+ */
+- (NSString *)getDayXun
+{
+    if (_sect == 2) {
+        return [_lunar getDayXunExact2];
+    } else {
+        return [_lunar getDayXunExact];
+    }
+}
+
+/**
+ * 获取日柱旬空(空亡)
+ * @return string 旬空(空亡)
+ */
+- (NSString *)getDayXunKong
+{
+    if (_sect == 2) {
+        return [_lunar getDayXunKongExact2];
+    } else {
+        return [_lunar getDayXunKongExact];
+    }
+}
+
+/**
+ * 获取时柱所在旬
+ * @return string 旬
+ */
+- (NSString *)getTimeXun
+{
+    return [_lunar getTimeXun];
+}
+
+/**
+ * 获取时柱旬空(空亡)
+ * @return string 旬空(空亡)
+ */
+- (NSString *)getTimeXunKong
+{
+    return [_lunar getTimeXunKong];
+}
 
 
 @end
@@ -4928,15 +4839,6 @@
     return [NineStar share].SONG_TAI_YI[_index];
 }
 
-/**
- * 获取九星序号,从0开始
- * @return int 序号
- */
-- (NSInteger)getIndex
-{
-    return _index;
-}
-
 - (NSString *)toString
 {
     return [NSString stringWithFormat:@"%@%@%@%@", [self getNumber], [self getColor], [self getWuXing], [self getNameInBeiDou]];
@@ -4992,15 +4894,6 @@
  */
 @implementation ShuJiu
 
-- (instancetype)init
-{
-    self = [super init];
-    if (self) {
-        
-    }
-    return self;
-}
-
 - (instancetype)initWith:(NSString *)name :(NSInteger)index
 {
     self = [super init];
@@ -5055,7 +4948,6 @@
         NSDateFormatter *form = [NSDateFormatter new];
         form.dateFormat = @"yyyy-MM-dd HH:mm:ss";
         _calendar = [form dateFromString:s];
-        
     }
     return self;
 }
@@ -5255,7 +5147,15 @@
     return l;
 }
 
-
+- (NSString *)toString
+{
+    NSMutableString *s = [NSMutableString string];
+    [s appendFormat:@"%@", [self toYmdHms]];
+    [s appendString:@" "];
+    [s appendString:@"星期"];
+    [s appendFormat:@"%@", [self getWeekInChinese]];
+    return s;
+}
 
 - (NSString *)toFullString
 {
@@ -6008,7 +5908,6 @@
     NSDateComponents *comps = [calendar components:NSCalendarUnitYear fromDate:date];
     return [[SolarYear alloc] initWith:comps.year];
 }
-
 
 /**
  * 获取本年的月份
diff --git a/Lunar/Lunar/ViewController.m b/Lunar/Lunar/ViewController.m
index eaae50c..34998ed 100644
--- a/Lunar/Lunar/ViewController.m
+++ b/Lunar/Lunar/ViewController.m
@@ -6,6 +6,7 @@
 //
 
 #import "ViewController.h"
+#import "Lunar.h"
 
 @interface ViewController ()
 
@@ -18,6 +19,76 @@
     [super viewDidLoad];
     
     self.view.backgroundColor = [UIColor redColor];
+    
+//    Solar *d = [Solar fromYmdHms:2021 :4 :1 :0 :0 :0];
+    Solar *d = [Solar fromDate:[NSDate new]];
+    NSLog(@"公历:%@", [d toFullString]);
+    
+    Lunar *l = [d getLunar];
+    
+    NSLog(@"农历:%@", [l toString]);
+    NSLog(@"年:%@年 属%@ %@", [l getYearInGanZhi], [l getYearShengXiao], [l getYearNaYin]);
+    NSLog(@"月:%@月 属%@ %@", [l getMonthInGanZhi], [l getMonthShengXiao], [l getMonthNaYin]);
+    NSLog(@"日:%@日 属%@ %@", [l getDayInGanZhi], [l getDayShengXiao], [l getDayNaYin]);
+    NSLog(@"儒略日:%@", @([d getJulianDay]));
+    
+    NSLog(@"月名:%@", [l getSeason]);
+    NSLog(@"月相:%@", [l getYueXiang]);
+    NSLog(@"物候:%@", [l getWuHou]);
+    NSLog(@"六曜:%@", [l getLiuYao]);
+    NSLog(@"彭祖百忌:%@ %@", [l getPengZuGan], [l getPengZuZhi]);
+    
+    NSArray *arrDayYi = [l getDayYi];
+    NSLog(@"每日宜:%@", arrDayYi.count == 0?@"无":[arrDayYi componentsJoinedByString:@" "]);
+    
+    NSArray *arrDayJi = [l getDayJi];
+    NSLog(@"每日忌:%@", arrDayJi.count == 0?@"无":[arrDayJi componentsJoinedByString:@" "]);
+    
+    NSArray *arrDayJiShen = [l getDayJiShen];
+    NSLog(@"吉神宜趋:%@", arrDayJiShen.count == 0?@"无":[arrDayJiShen componentsJoinedByString:@" "]);
+    
+    NSArray *arrDayXiongSha = [l getDayXiongSha];
+    NSLog(@"凶煞宜忌:%@", arrDayXiongSha.count == 0?@"无":[arrDayXiongSha componentsJoinedByString:@" "]);
+    
+    NSLog(@"相冲:%@日 冲%@", [l getDayShengXiao], [l getDayChongDesc]);
+    NSLog(@"岁煞:%@", [l getDaySha]);
+    NSLog(@"星宿:%@(%@)", [l getXiu], [l getXiuLuck]);
+    NSLog(@"星宿歌诀:%@", [l getXiuSong]);
+    
+    NSLog(@"贵神方位:阳贵神:%@ 阴贵神:%@", [l getDayPositionYangGuiDesc], [l getDayPositionYinGuiDesc]);
+    NSLog(@"喜神方位:%@", [l getDayPositionXiDesc]);
+    NSLog(@"福神方位:%@", [l getDayPositionFuDesc]);
+    NSLog(@"财神方位:%@", [l getDayPositionCaiDesc]);
+    
+    NSLog(@"本月胎神:%@", [l getMonthPositionTai]);
+    NSLog(@"今日胎神:%@", [l getDayPositionTai]);
+    NSLog(@"值星:%@", [l getZhiXing]);
+    NSLog(@"十二天神:%@(%@)%@", [l getDayTianShen], [l getDayTianShenType], [l getDayTianShenLuck]);
+    NSLog(@"空亡所值:年=%@ 月=%@ 日=%@", [l getYearXunKong], [l getMonthXunKong], [l getDayXunKong]);
+    
+    NineStar *dayNineStar = [l getDayNineStar];
+    [dayNineStar toFullString];
+    NSLog(@"九星:%@%@-%@星(%@)-%@", [dayNineStar getNumber],[dayNineStar getColor], [dayNineStar getNameInTaiYi], [dayNineStar getWuXing], [dayNineStar getTypeInTaiYi]);
+    NSLog(@"九星歌诀:%@", [dayNineStar getSongInTaiYi]);
+    
+    JieQi * pJQ = [l getPrevJieQi];
+    NSLog(@"上一节气:%@ %@", pJQ.name, [pJQ.solar toString]);
+    
+    JieQi * nJQ = [l getNextJieQi];
+    NSLog(@"下一节气:%@ %@", nJQ.name, [nJQ.solar toString]);
+    
+    NSArray *arrFestivals = [d getFestivals];
+    NSLog(@"节日:%@", arrFestivals.count == 0?@"无":[arrFestivals componentsJoinedByString:@" "]);
+    
+    NSArray *arrOtherFestivals = [d getOtherFestivals];
+    NSLog(@"纪念日:%@", arrOtherFestivals.count == 0?@"":[arrOtherFestivals componentsJoinedByString:@" "]);
+    
+    ShuJiu *shujiu = [l getShuJiu];
+    NSLog(@"数九:%@", shujiu?[shujiu toFullString]:@"");
+    
+    Fu *fu = [l getFu];
+    NSLog(@"数九:%@", fu?[fu toFullString]:@"");
+    
 }
 
 

--
Gitblit v1.9.1