diff --git a/README.md b/README.md index 59d13c5..bae02d0 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ lunar是一个无依赖的支持阳历和阴历的日历工具库。 输出结果: - 壹玖捌陆年肆月廿一 丙寅(虎)年 癸巳(蛇)月 癸酉(鸡)日 子(鼠)时 纳音五行[炉中火 长流水 剑锋金 海中金] 星期四 北方玄武 星宿[斗木獬](吉) 彭祖百忌[癸不词讼理弱敌强 酉不会客醉坐颠狂] 喜神方位[巽](东南) 阳贵神方位[巽](东南) 阴贵神方位[震](正东) 福神方位[兑](正西) 财神方位[离](正南) 冲[(丁卯)兔] 煞[东] + 壹玖捌陆年肆月廿一 丙寅(虎)年 癸巳(蛇)月 癸酉(鸡)日 子(鼠)时 纳音[炉中火 长流水 剑锋金 海中金] 星期四 北方玄武 星宿[斗木獬](吉) 彭祖百忌[癸不词讼理弱敌强 酉不会客醉坐颠狂] 喜神方位[巽](东南) 阳贵神方位[巽](东南) 阴贵神方位[震](正东) 福神方位[兑](正西) 财神方位[离](正南) 冲[(丁卯)兔] 煞[东] 1986-05-29 00:00 星期四 双子座 ## 文档 diff --git a/README_EN.md b/README_EN.md index 7299d5d..bca4062 100644 --- a/README_EN.md +++ b/README_EN.md @@ -66,7 +66,7 @@ If you will use jars in your projects, I suggest you to download latest snapshot Output: - 壹玖捌陆年肆月廿一 丙寅(虎)年 癸巳(蛇)月 癸酉(鸡)日 子(鼠)时 纳音五行[炉中火 长流水 剑锋金 海中金] 星期四 北方玄武 星宿[斗木獬](吉) 彭祖百忌[癸不词讼理弱敌强 酉不会客醉坐颠狂] 喜神方位[巽](东南) 阳贵神方位[巽](东南) 阴贵神方位[震](正东) 福神方位[兑](正西) 财神方位[离](正南) 冲[(丁卯)兔] 煞[东] + 壹玖捌陆年肆月廿一 丙寅(虎)年 癸巳(蛇)月 癸酉(鸡)日 子(鼠)时 纳音[炉中火 长流水 剑锋金 海中金] 星期四 北方玄武 星宿[斗木獬](吉) 彭祖百忌[癸不词讼理弱敌强 酉不会客醉坐颠狂] 喜神方位[巽](东南) 阳贵神方位[巽](东南) 阴贵神方位[震](正东) 福神方位[兑](正西) 财神方位[离](正南) 冲[(丁卯)兔] 煞[东] 1986-05-29 00:00 星期四 双子座 ## Documentation diff --git a/src/main/java/com/nlf/calendar/Lunar.java b/src/main/java/com/nlf/calendar/Lunar.java index 93cf6b3..a5cc7db 100644 --- a/src/main/java/com/nlf/calendar/Lunar.java +++ b/src/main/java/com/nlf/calendar/Lunar.java @@ -206,8 +206,8 @@ public class Lunar{ } /** - * 获取干支纪年 - * @return 年份的干支,如辛亥 + * 获取干支纪年(年柱) + * @return 年份的干支(年柱),如辛亥 */ public String getYearInGanZhi(){ return getYearGan()+getYearZhi(); @@ -328,8 +328,8 @@ public class Lunar{ } /** - * 获取时辰干支 - * @return 时辰干支 + * 获取时辰干支(时柱) + * @return 时辰干支(时柱) */ public String getTimeInGanZhi(){ String zhi = getTimeZhi(); @@ -538,11 +538,11 @@ public class Lunar{ } /** - * 获取干支纪月 + * 获取干支纪月(月柱) *

月天干口诀:甲己丙寅首,乙庚戊寅头。丙辛从庚寅,丁壬壬寅求,戊癸甲寅居,周而复始流。

*

月地支:正月起寅

* - * @return 干支纪月,如己卯 + * @return 干支纪月(月柱),如己卯 */ public String getMonthInGanZhi(){ return getMonthGan()+getMonthZhi(); @@ -569,9 +569,9 @@ public class Lunar{ } /** - * 获取干支纪日 + * 获取干支纪日(日柱) * - * @return 干支纪日,如己卯 + * @return 干支纪日(日柱),如己卯 */ public String getDayInGanZhi(){ return getDayGan()+getDayZhi(); @@ -778,10 +778,11 @@ public class Lunar{ } /** - * 获取八字 - * @return 八字 + * 获取八字,男性也称乾造,女性也称坤造 + * @return 八字(男性也称乾造,女性也称坤造) */ - public String getBaZi(){ + public List getBaZi(){ + List l = new ArrayList(4); String dayGan = getDayGan(); int dayGanIndex = 1; for(int i=0,j=LunarUtil.GAN.length;i getBaZiWuXing(){ + List baZi = getBaZi(); + List l = new ArrayList(baZi.size()); + for(String ganZhi:baZi){ + String gan = ganZhi.substring(0,1); + String zhi = ganZhi.substring(1); + l.add(LunarUtil.WU_XING_GAN.get(gan)+LunarUtil.WU_XING_ZHI.get(zhi)); } - return s.toString(); + return l; + } + + /** + * 获取八字纳音 + * @return 八字纳音 + */ + public List getBaZiNaYin(){ + List baZi = getBaZi(); + List l = new ArrayList(baZi.size()); + for(String ganZhi:baZi){ + l.add(LunarUtil.NAYIN.get(ganZhi)); + } + return l; + } + + /** + * 获取八字天干十神,日柱十神为日主,其余三柱根据天干十神表查询 + * @return 八字天干十神 + */ + public List getBaZiShiShenGan(){ + List baZi = getBaZi(); + String yearGan = baZi.get(0).substring(0,1); + String monthGan = baZi.get(1).substring(0,1); + String dayGan = baZi.get(2).substring(0,1); + String timeGan = baZi.get(3).substring(0,1); + List l = new ArrayList(baZi.size()); + l.add(LunarUtil.SHI_SHEN_GAN.get(dayGan+yearGan)); + l.add(LunarUtil.SHI_SHEN_GAN.get(dayGan+monthGan)); + l.add("日主"); + l.add(LunarUtil.SHI_SHEN_GAN.get(dayGan+timeGan)); + return l; + } + + /** + * 获取八字地支十神,根据地支十神表查询 + * @return 八字地支十神 + */ + public List getBaZiShiShenZhi(){ + List baZi = getBaZi(); + String dayGan = baZi.get(2).substring(0,1); + List l = new ArrayList(baZi.size()); + for(String ganZhi:baZi){ + String zhi = ganZhi.substring(1); + l.add(LunarUtil.SHI_SHEN_ZHI.get(dayGan+zhi+LunarUtil.ZHI_HIDE_GAN.get(zhi).get(0))); + } + return l; } public String toFullString(){ @@ -838,7 +890,7 @@ public class Lunar{ s.append(getTimeZhi()); s.append("("); s.append(getTimeShengXiao()); - s.append(")时 纳音五行["); + s.append(")时 纳音["); s.append(getYearNaYin()); s.append(" "); s.append(getMonthNaYin()); diff --git a/src/main/java/com/nlf/calendar/util/LunarUtil.java b/src/main/java/com/nlf/calendar/util/LunarUtil.java index a6f8a54..f268279 100644 --- a/src/main/java/com/nlf/calendar/util/LunarUtil.java +++ b/src/main/java/com/nlf/calendar/util/LunarUtil.java @@ -174,7 +174,7 @@ public class LunarUtil{ private static final long serialVersionUID = -1; { put("申1","毕"); - put("申2","翌"); + put("申2","翼"); put("申3","箕"); put("申4","奎"); put("申5","鬼"); @@ -182,7 +182,7 @@ public class LunarUtil{ put("申0","虚"); put("子1","毕"); - put("子2","翌"); + put("子2","翼"); put("子3","箕"); put("子4","奎"); put("子5","鬼"); @@ -190,7 +190,7 @@ public class LunarUtil{ put("子0","虚"); put("辰1","毕"); - put("辰2","翌"); + put("辰2","翼"); put("辰3","箕"); put("辰4","奎"); put("辰5","鬼"); @@ -654,6 +654,419 @@ public class LunarUtil{ } }; + /** 天干十神,日主+天干为键 */ + public static final Map SHI_SHEN_GAN = new HashMap() { + private static final long serialVersionUID = -1; + { + put("甲甲","比肩"); + put("甲乙","劫财"); + put("甲丙","食神"); + put("甲丁","伤官"); + put("甲戊","偏财"); + put("甲己","正财"); + put("甲庚","七杀"); + put("甲辛","正官"); + put("甲壬","偏印"); + put("甲癸","正印"); + put("乙乙","比肩"); + put("乙甲","劫财"); + put("乙丁","食神"); + put("乙丙","伤官"); + put("乙己","偏财"); + put("乙戊","正财"); + put("乙辛","七杀"); + put("乙庚","正官"); + put("乙癸","偏印"); + put("乙壬","正印"); + put("丙丙","比肩"); + put("丙丁","劫财"); + put("丙戊","食神"); + put("丙己","伤官"); + put("丙庚","偏财"); + put("丙辛","正财"); + put("丙壬","七杀"); + put("丙癸","正官"); + put("丙甲","偏印"); + put("丙乙","正印"); + put("丁丁","比肩"); + put("丁丙","劫财"); + put("丁己","食神"); + put("丁戊","伤官"); + put("丁辛","偏财"); + put("丁庚","正财"); + put("丁癸","七杀"); + put("丁壬","正官"); + put("丁乙","偏印"); + put("丁甲","正印"); + put("戊戊","比肩"); + put("戊己","劫财"); + put("戊庚","食神"); + put("戊辛","伤官"); + put("戊壬","偏财"); + put("戊癸","正财"); + put("戊甲","七杀"); + put("戊乙","正官"); + put("戊丙","偏印"); + put("戊丁","正印"); + put("己己","比肩"); + put("己戊","劫财"); + put("己辛","食神"); + put("己庚","伤官"); + put("己癸","偏财"); + put("己壬","正财"); + put("己乙","七杀"); + put("己甲","正官"); + put("己丁","偏印"); + put("己丙","正印"); + put("庚庚","比肩"); + put("庚辛","劫财"); + put("庚壬","食神"); + put("庚癸","伤官"); + put("庚甲","偏财"); + put("庚乙","正财"); + put("庚丙","七杀"); + put("庚丁","正官"); + put("庚戊","偏印"); + put("庚己","正印"); + put("辛辛","比肩"); + put("辛庚","劫财"); + put("辛癸","食神"); + put("辛壬","伤官"); + put("辛乙","偏财"); + put("辛甲","正财"); + put("辛丁","七杀"); + put("辛丙","正官"); + put("辛己","偏印"); + put("辛戊","正印"); + put("壬壬","比肩"); + put("壬癸","劫财"); + put("壬甲","食神"); + put("壬乙","伤官"); + put("壬丙","偏财"); + put("壬丁","正财"); + put("壬戊","七杀"); + put("壬己","正官"); + put("壬庚","偏印"); + put("壬辛","正印"); + put("癸癸","比肩"); + put("癸壬","劫财"); + put("癸乙","食神"); + put("癸甲","伤官"); + put("癸丁","偏财"); + put("癸丙","正财"); + put("癸己","七杀"); + put("癸戊","正官"); + put("癸辛","偏印"); + put("癸庚","正印"); + } + }; + + /** 地支十神,日主+地支藏干主气为键 */ + public static final Map SHI_SHEN_ZHI = new HashMap() { + private static final long serialVersionUID = -1; + { + put("甲子癸","正印"); + put("甲丑癸","正印"); + put("甲丑己","正财"); + put("甲丑辛","正官"); + put("甲寅丙","食神"); + put("甲寅甲","比肩"); + put("甲寅戊","偏财"); + put("甲卯乙","劫财"); + put("甲辰乙","劫财"); + put("甲辰戊","偏财"); + put("甲辰癸","正印"); + put("甲巳戊","偏财"); + put("甲巳丙","食神"); + put("甲巳庚","七杀"); + put("甲午丁","伤官"); + put("甲午己","正财"); + put("甲未乙","劫财"); + put("甲未己","正财"); + put("甲未丁","伤官"); + put("甲申戊","偏财"); + put("甲申庚","七杀"); + put("甲申壬","偏印"); + put("甲酉辛","正官"); + put("甲戌辛","正官"); + put("甲戌戊","偏财"); + put("甲戌丁","伤官"); + put("甲亥壬","偏印"); + put("甲亥甲","比肩"); + put("乙子癸","偏印"); + put("乙丑癸","偏印"); + put("乙丑己","偏财"); + put("乙丑辛","七杀"); + put("乙寅丙","伤官"); + put("乙寅甲","劫财"); + put("乙寅戊","正财"); + put("乙卯乙","比肩"); + put("乙辰乙","比肩"); + put("乙辰戊","正财"); + put("乙辰癸","偏印"); + put("乙巳戊","正财"); + put("乙巳丙","伤官"); + put("乙巳庚","正官"); + put("乙午丁","食神"); + put("乙午己","偏财"); + put("乙未乙","比肩"); + put("乙未己","偏财"); + put("乙未丁","食神"); + put("乙申戊","正财"); + put("乙申庚","正官"); + put("乙申壬","正印"); + put("乙酉辛","七杀"); + put("乙戌辛","七杀"); + put("乙戌戊","正财"); + put("乙戌丁","食神"); + put("乙亥壬","正印"); + put("乙亥甲","劫财"); + put("丙子癸","正官"); + put("丙丑癸","正官"); + put("丙丑己","伤官"); + put("丙丑辛","正财"); + put("丙寅丙","比肩"); + put("丙寅甲","偏印"); + put("丙寅戊","食神"); + put("丙卯乙","正印"); + put("丙辰乙","正印"); + put("丙辰戊","食神"); + put("丙辰癸","正官"); + put("丙巳戊","食神"); + put("丙巳丙","比肩"); + put("丙巳庚","偏财"); + put("丙午丁","劫财"); + put("丙午己","伤官"); + put("丙未乙","正印"); + put("丙未己","伤官"); + put("丙未丁","劫财"); + put("丙申戊","食神"); + put("丙申庚","偏财"); + put("丙申壬","七杀"); + put("丙酉辛","正财"); + put("丙戌辛","正财"); + put("丙戌戊","食神"); + put("丙戌丁","劫财"); + put("丙亥壬","七杀"); + put("丙亥甲","偏印"); + put("丁子癸","七杀"); + put("丁丑癸","七杀"); + put("丁丑己","食神"); + put("丁丑辛","偏财"); + put("丁寅丙","劫财"); + put("丁寅甲","正印"); + put("丁寅戊","伤官"); + put("丁卯乙","偏印"); + put("丁辰乙","偏印"); + put("丁辰戊","伤官"); + put("丁辰癸","七杀"); + put("丁巳戊","伤官"); + put("丁巳丙","劫财"); + put("丁巳庚","正财"); + put("丁午丁","比肩"); + put("丁午己","食神"); + put("丁未乙","偏印"); + put("丁未己","食神"); + put("丁未丁","比肩"); + put("丁申戊","伤官"); + put("丁申庚","正财"); + put("丁申壬","正官"); + put("丁酉辛","偏财"); + put("丁戌辛","偏财"); + put("丁戌戊","伤官"); + put("丁戌丁","比肩"); + put("丁亥壬","正官"); + put("丁亥甲","正印"); + put("戊子癸","正财"); + put("戊丑癸","正财"); + put("戊丑己","劫财"); + put("戊丑辛","伤官"); + put("戊寅丙","偏印"); + put("戊寅甲","七杀"); + put("戊寅戊","比肩"); + put("戊卯乙","正官"); + put("戊辰乙","正官"); + put("戊辰戊","比肩"); + put("戊辰癸","正财"); + put("戊巳戊","比肩"); + put("戊巳丙","偏印"); + put("戊巳庚","食神"); + put("戊午丁","正印"); + put("戊午己","劫财"); + put("戊未乙","正官"); + put("戊未己","劫财"); + put("戊未丁","正印"); + put("戊申戊","比肩"); + put("戊申庚","食神"); + put("戊申壬","偏财"); + put("戊酉辛","伤官"); + put("戊戌辛","伤官"); + put("戊戌戊","比肩"); + put("戊戌丁","正印"); + put("戊亥壬","偏财"); + put("戊亥甲","七杀"); + put("己子癸","偏财"); + put("己丑癸","偏财"); + put("己丑己","比肩"); + put("己丑辛","食神"); + put("己寅丙","正印"); + put("己寅甲","正官"); + put("己寅戊","劫财"); + put("己卯乙","七杀"); + put("己辰乙","七杀"); + put("己辰戊","劫财"); + put("己辰癸","偏财"); + put("己巳戊","劫财"); + put("己巳丙","正印"); + put("己巳庚","伤官"); + put("己午丁","偏印"); + put("己午己","比肩"); + put("己未乙","七杀"); + put("己未己","比肩"); + put("己未丁","偏印"); + put("己申戊","劫财"); + put("己申庚","伤官"); + put("己申壬","正财"); + put("己酉辛","食神"); + put("己戌辛","食神"); + put("己戌戊","劫财"); + put("己戌丁","偏印"); + put("己亥壬","正财"); + put("己亥甲","正官"); + put("庚子癸","伤官"); + put("庚丑癸","伤官"); + put("庚丑己","正印"); + put("庚丑辛","劫财"); + put("庚寅丙","七杀"); + put("庚寅甲","偏财"); + put("庚寅戊","偏印"); + put("庚卯乙","正财"); + put("庚辰乙","正财"); + put("庚辰戊","偏印"); + put("庚辰癸","伤官"); + put("庚巳戊","偏印"); + put("庚巳丙","七杀"); + put("庚巳庚","比肩"); + put("庚午丁","正官"); + put("庚午己","正印"); + put("庚未乙","正财"); + put("庚未己","正印"); + put("庚未丁","正官"); + put("庚申戊","偏印"); + put("庚申庚","比肩"); + put("庚申壬","食神"); + put("庚酉辛","劫财"); + put("庚戌辛","劫财"); + put("庚戌戊","偏印"); + put("庚戌丁","正官"); + put("庚亥壬","食神"); + put("庚亥甲","偏财"); + put("辛子癸","食神"); + put("辛丑癸","食神"); + put("辛丑己","偏印"); + put("辛丑辛","比肩"); + put("辛寅丙","正官"); + put("辛寅甲","正财"); + put("辛寅戊","正印"); + put("辛卯乙","偏财"); + put("辛辰乙","偏财"); + put("辛辰戊","正印"); + put("辛辰癸","食神"); + put("辛巳戊","正印"); + put("辛巳丙","正官"); + put("辛巳庚","劫财"); + put("辛午丁","七杀"); + put("辛午己","偏印"); + put("辛未乙","偏财"); + put("辛未己","偏印"); + put("辛未丁","七杀"); + put("辛申戊","正印"); + put("辛申庚","劫财"); + put("辛申壬","伤官"); + put("辛酉辛","比肩"); + put("辛戌辛","比肩"); + put("辛戌戊","正印"); + put("辛戌丁","七杀"); + put("辛亥壬","伤官"); + put("辛亥甲","正财"); + put("壬子癸","劫财"); + put("壬丑癸","劫财"); + put("壬丑己","正官"); + put("壬丑辛","正印"); + put("壬寅丙","偏财"); + put("壬寅甲","食神"); + put("壬寅戊","七杀"); + put("壬卯乙","伤官"); + put("壬辰乙","伤官"); + put("壬辰戊","七杀"); + put("壬辰癸","劫财"); + put("壬巳戊","七杀"); + put("壬巳丙","偏财"); + put("壬巳庚","偏印"); + put("壬午丁","正财"); + put("壬午己","正官"); + put("壬未乙","伤官"); + put("壬未己","正官"); + put("壬未丁","正财"); + put("壬申戊","七杀"); + put("壬申庚","偏印"); + put("壬申壬","比肩"); + put("壬酉辛","正印"); + put("壬戌辛","正印"); + put("壬戌戊","七杀"); + put("壬戌丁","正财"); + put("壬亥壬","比肩"); + put("壬亥甲","食神"); + put("癸子癸","比肩"); + put("癸丑癸","比肩"); + put("癸丑己","七杀"); + put("癸丑辛","偏印"); + put("癸寅丙","正财"); + put("癸寅甲","伤官"); + put("癸寅戊","正官"); + put("癸卯乙","食神"); + put("癸辰乙","食神"); + put("癸辰戊","正官"); + put("癸辰癸","比肩"); + put("癸巳戊","正官"); + put("癸巳丙","正财"); + put("癸巳庚","正印"); + put("癸午丁","偏财"); + put("癸午己","七杀"); + put("癸未乙","食神"); + put("癸未己","七杀"); + put("癸未丁","偏财"); + put("癸申戊","正官"); + put("癸申庚","正印"); + put("癸申壬","劫财"); + put("癸酉辛","偏印"); + put("癸戌辛","偏印"); + put("癸戌戊","正官"); + put("癸戌丁","偏财"); + put("癸亥壬","劫财"); + put("癸亥甲","伤官"); + } + }; + + /** 地支藏干表,分别为主气、余气、杂气 */ + public static final Map> ZHI_HIDE_GAN = new HashMap>() { + private static final long serialVersionUID = -1; + { + put("子",Collections.nCopies(1,"癸")); + put("丑",Arrays.asList("己","癸","辛")); + put("寅",Arrays.asList("甲","丙","戊")); + put("卯",Collections.nCopies(1,"乙")); + put("辰",Arrays.asList("戊","乙","癸")); + put("巳",Arrays.asList("丙","庚","戊")); + put("午",Arrays.asList("丁","己")); + put("未",Arrays.asList("己","丁","乙")); + put("申",Arrays.asList("庚","壬","戊")); + put("酉",Collections.nCopies(1,"辛")); + put("戌",Arrays.asList("戊","辛","丁")); + put("亥",Arrays.asList("壬","甲")); + } + }; + protected LunarUtil(){} /** diff --git a/src/test/java/test/LunarTest.java b/src/test/java/test/LunarTest.java index f8f1304..1d25edb 100644 --- a/src/test/java/test/LunarTest.java +++ b/src/test/java/test/LunarTest.java @@ -15,7 +15,7 @@ public class LunarTest { public void test(){ Lunar date = new Lunar(2019,3,27); Assert.assertEquals("贰零壹玖年叁月廿七",date.toString()); - Assert.assertEquals("贰零壹玖年叁月廿七 己亥(猪)年 戊辰(龙)月 戊戌(狗)日 子(鼠)时 纳音五行[平地木 大林木 平地木 海中金] 星期三 (七殿泰山王诞) 西方白虎 星宿[参水猿](吉) 彭祖百忌[戊不受田田主不祥 戌不吃犬作怪上床] 喜神方位[巽](东南) 阳贵神方位[艮](东北) 阴贵神方位[坤](西南) 福神方位[坎](正北) 财神方位[坎](正北) 冲[(壬辰)龙] 煞[北]",date.toFullString()); + Assert.assertEquals("贰零壹玖年叁月廿七 己亥(猪)年 戊辰(龙)月 戊戌(狗)日 子(鼠)时 纳音[平地木 大林木 平地木 海中金] 星期三 (七殿泰山王诞) 西方白虎 星宿[参水猿](吉) 彭祖百忌[戊不受田田主不祥 戌不吃犬作怪上床] 喜神方位[巽](东南) 阳贵神方位[艮](东北) 阴贵神方位[坤](西南) 福神方位[坎](正北) 财神方位[坎](正北) 冲[(壬辰)龙] 煞[北]",date.toFullString()); Assert.assertEquals("2019-05-01",date.getSolar().toString()); Assert.assertEquals("2019-05-01 00:00 星期三 (劳动节) 金牛座",date.getSolar().toFullString()); } diff --git a/src/test/java/test/SolarTest.java b/src/test/java/test/SolarTest.java index 4f0b993..26a25dd 100644 --- a/src/test/java/test/SolarTest.java +++ b/src/test/java/test/SolarTest.java @@ -17,7 +17,7 @@ public class SolarTest { Assert.assertEquals("2019-05-01",date.toString()); Assert.assertEquals("2019-05-01 00:00 星期三 (劳动节) 金牛座",date.toFullString()); Assert.assertEquals("贰零壹玖年叁月廿七",date.getLunar().toString()); - Assert.assertEquals("贰零壹玖年叁月廿七 己亥(猪)年 戊辰(龙)月 戊戌(狗)日 子(鼠)时 纳音五行[平地木 大林木 平地木 海中金] 星期三 (七殿泰山王诞) 西方白虎 星宿[参水猿](吉) 彭祖百忌[戊不受田田主不祥 戌不吃犬作怪上床] 喜神方位[巽](东南) 阳贵神方位[艮](东北) 阴贵神方位[坤](西南) 福神方位[坎](正北) 财神方位[坎](正北) 冲[(壬辰)龙] 煞[北]",date.getLunar().toFullString()); + Assert.assertEquals("贰零壹玖年叁月廿七 己亥(猪)年 戊辰(龙)月 戊戌(狗)日 子(鼠)时 纳音[平地木 大林木 平地木 海中金] 星期三 (七殿泰山王诞) 西方白虎 星宿[参水猿](吉) 彭祖百忌[戊不受田田主不祥 戌不吃犬作怪上床] 喜神方位[巽](东南) 阳贵神方位[艮](东北) 阴贵神方位[坤](西南) 福神方位[坎](正北) 财神方位[坎](正北) 冲[(壬辰)龙] 煞[北]",date.getLunar().toFullString()); } }