1
0
mirror of synced 2026-02-04 12:07:59 +08:00

Merge branch 'v1.1.0-SNAPSHOT'

This commit is contained in:
6tail
2020-07-09 17:10:04 +08:00
3 changed files with 246 additions and 0 deletions

View File

@@ -1532,6 +1532,26 @@ public class Lunar{
return LunarUtil.getTimeJi(getDayInGanZhiExact(),getTimeInGanZhi());
}
/**
* 获取月相
* @return 月相
*/
public String getYueXiang() {
return LunarUtil.YUE_XIANG[day];
}
/**
* 获取值年九星
* @return 值年九星
*/
public NineStar getYearNineStar(){
int index = LunarUtil.BASE_YEAR_JIU_XING_INDEX-(year-LunarUtil.BASE_YEAR)%9;
if(index<0){
index += 9;
}
return new NineStar(index);
}
/**
* 获取节气表(节气名称:阳历),节气交接时刻精确到秒,以冬至开头,按先后顺序排列
* @return 节气表

View File

@@ -0,0 +1,221 @@
package com.nlf.calendar;
import com.nlf.calendar.util.LunarUtil;
/**
* 九星
* <p>玄空九星、奇门九星都来源于北斗九星,九数、七色、五行、后天八卦方位都是相通的。</p>
* @author 6tail
*/
public class NineStar {
/** 九数 */
public static final String[] NUMBER = {"","","","","","","","",""};
/** 七色 */
public static final String[] COLOR = {"","","","绿","","","","",""};
/** 五行 */
public static final String[] WU_XING = {"","","","","","","","",""};
/** 后天八卦方位 */
public static final String[] POSITION = {"","","","","","","","",""};
/** 北斗九星 */
public static final String[] NAME_BEI_DOU = {"天枢","天璇","天玑","天权","玉衡","开阳","摇光","洞明","隐元"};
/** 玄空九星(玄空风水) */
public static final String[] NAME_XUAN_KONG = {"贪狼","巨门","禄存","文曲","廉贞","武曲","破军","左辅","右弼"};
/** 奇门九星(奇门遁甲,也称天盘九星) */
public static final String[] NAME_QI_MEN = {"天蓬","天芮","天冲","天辅","天禽","天心","天柱","天任","天英"};
/** 八门(奇门遁甲) */
public static final String[] BA_MEN_QI_MEN = {"","","","","","","","",""};
/** 太乙九神(太乙神数) */
public static final String[] NAME_TAI_YI = {"太乙","摄提","轩辕","招摇","天符","青龙","咸池","太阴","天乙"};
/** 太乙九神对应类型 */
public static final String[] TYPE_TAI_YI = {"吉神","凶神","安神","安神","凶神","吉神","凶神","吉神","吉神"};
/** 吉凶(玄空风水) */
public static final String[] LUCK_XUAN_KONG = {"","","","","","","","",""};
/** 吉凶(奇门遁甲) */
public static final String[] LUCK_QI_MEN = {"大凶","大凶","小吉","大吉","大吉","大吉","小凶","小吉","小凶"};
/** 阴阳(奇门遁甲) */
public static final String[] YIN_YANG_QI_MEN = {"","","","","","","","",""};
/** 序号0到8 */
protected int index;
public NineStar(int index) {
this.index = index;
}
/**
* 获取九数
* @return 九数
*/
public String getNumber(){
return NUMBER[index];
}
/**
* 获取七色
* @return 七色
*/
public String getColor(){
return COLOR[index];
}
/**
* 获取五行
* @return 五行
*/
public String getWuXing(){
return WU_XING[index];
}
/**
* 获取方位
* @return 方位
*/
public String getPosition(){
return POSITION[index];
}
/**
* 获取方位描述
* @return 方位描述
*/
public String getPositionDesc(){
return LunarUtil.POSITION_DESC.get(getPosition());
}
/**
* 获取玄空九星名称
* @return 玄空九星名称
*/
public String getNameInXuanKong(){
return NAME_XUAN_KONG[index];
}
/**
* 获取北斗九星名称
* @return 北斗九星名称
*/
public String getNameInBeiDou(){
return NAME_BEI_DOU[index];
}
/**
* 获取奇门九星名称
* @return 奇门九星名称
*/
public String getNameInQiMen(){
return NAME_QI_MEN[index];
}
/**
* 获取太乙九神名称
* @return 太乙九神名称
*/
public String getNameInTaiYi(){
return NAME_TAI_YI[index];
}
/**
* 获取奇门九星吉凶
* @return 大吉/小吉/大凶/小凶
*/
public String getLuckInQiMen(){
return LUCK_QI_MEN[index];
}
/**
* 获取玄空九星吉凶
* @return 吉/凶
*/
public String getLuckInXuanKong(){
return LUCK_XUAN_KONG[index];
}
/**
* 获取奇门九星阴阳
* @return 阴/阳
*/
public String getYinYangInQiMen(){
return YIN_YANG_QI_MEN[index];
}
/**
* 获取太乙九神类型
* @return 吉神/凶神/安神
*/
public String getTypeInTaiYi(){
return TYPE_TAI_YI[index];
}
/**
* 获取八门(奇门遁甲)
* @return 八门
*/
public String getBaMenInQiMen(){
return BA_MEN_QI_MEN[index];
}
/**
* 获取九星序号从0开始
* @return 序号
*/
public int getIndex(){
return index;
}
@Override
public String toString(){
return getNumber()+getColor()+getWuXing()+getNameInBeiDou();
}
/**
* 获取详细描述
* @return 详细描述
*/
public String toFullString(){
StringBuilder s = new StringBuilder();
s.append(getNumber());
s.append(getColor());
s.append(getWuXing());
s.append(" ");
s.append(getPosition());
s.append("(");
s.append(getPositionDesc());
s.append(") ");
s.append(getNameInBeiDou());
s.append(" 玄空[");
s.append(getNameInXuanKong());
s.append(" ");
s.append(getLuckInXuanKong());
s.append("] 奇门[");
s.append(getNameInQiMen());
s.append(" ");
s.append(getLuckInQiMen());
if(getBaMenInQiMen().length()>0) {
s.append(" ");
s.append(getBaMenInQiMen());
s.append("");
}
s.append(" ");
s.append(getYinYangInQiMen());
s.append("] 太乙[");
s.append(getNameInTaiYi());
s.append(" ");
s.append(getTypeInTaiYi());
s.append("]");
return s.toString();
}
}

View File

@@ -17,6 +17,8 @@ public class LunarUtil{
public static final int BASE_DAY = 11;
/** 农历与阳历年偏移量 */
public static final int BASE_INDEX = 0;
/** 基准对应的值年九星偏移量 */
public static final int BASE_YEAR_JIU_XING_INDEX = 0;
/** 基准对应的年干支偏移量 */
public static final int BASE_YEAR_GANZHI_INDEX = -4;
/** 基准对应的日干支偏移量 */
@@ -128,6 +130,8 @@ public class LunarUtil{
public static final String[] JIE = {"小寒","立春","惊蛰","清明","立夏","芒种","小暑","立秋","白露","寒露","立冬","大雪"};
/** 日 */
public static final String[] DAY = {"","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"};
/** 月相,朔月也叫新月,望月也叫满月 */
public static final String[] YUE_XIANG = {"","","既朔","蛾眉新","蛾眉新","蛾眉","夕月","上弦","上弦","九夜","","","","渐盈凸","小望","","既望","立待","居待","寝待","更待","渐亏凸","下弦","下弦","有明","有明","蛾眉残","蛾眉残","","",""};
/** 农历日期对应的节日 */
public static final Map<String,String> FESTIVAL = new HashMap<String,String>(){
private static final long serialVersionUID = -1;
@@ -468,6 +472,7 @@ public class LunarUtil{
put("","西南");
put("","正西");
put("","西北");
put("","中宫");
}
};
/** 宫 */