1
0
mirror of synced 2025-12-25 14:57:59 +08:00

修复星宿计算错误的问题;增加农历星期的获取。

This commit is contained in:
6tail
2020-04-06 12:50:42 +08:00
parent 18a6a0a09a
commit e24cca9bf4
2 changed files with 125 additions and 37 deletions

View File

@@ -330,13 +330,31 @@ public class Lunar{
return s;
}
/**
* 获取星期0代表周日1代表周一
*
* @return 0123456
*/
public int getWeek(){
return (dayOffset+LunarUtil.BASE_WEEK_INDEX)%7;
}
/**
* 获取星期的中文
*
* @return 日一二三四五六
*/
public String getWeekInChinese(){
return SolarUtil.WEEK[getWeek()];
}
/**
* 获取宿
*
* @return 宿
*/
public String getXiu(){
return LunarUtil.XIU[day-1][Math.abs(month)-1];
return LunarUtil.XIU.get(getDayZhi()+getWeek());
}
/**
@@ -659,14 +677,14 @@ public class Lunar{
s.append(getDayInGanZhi());
s.append("(");
s.append(getDayShengXiao());
s.append(")日");
s.append(" 纳音[");
s.append(")日 纳音[");
s.append(getYearNaYin());
s.append(" ");
s.append(getMonthNaYin());
s.append(" ");
s.append(getDayNaYin());
s.append("]");
s.append("] 星期");
s.append(getWeekInChinese());
for(String f:getFestivals()){
s.append(" (");
s.append(f);

View File

@@ -21,6 +21,8 @@ public class LunarUtil{
public static final int BASE_DAY_GANZHI_INDEX = 15;
/** 月份地支偏移量,因正月起寅 */
public static final int BASE_MONTH_ZHI_INDEX = 2;
/** 星期偏移量 */
public static final int BASE_WEEK_INDEX = 2;
/** 闰年表 */
public static final int[] LEAP_MONTH_YEAR = {6,14,19,25,33,36,38,41,44,52,55,79,117,136,147,150,155,158,185,193};
/** 闰月表 */
@@ -167,38 +169,106 @@ public class LunarUtil{
put("12-29",Collections.nCopies(1,"华严菩萨诞"));
}
};
/** 宿 */
public static final String[][] XIU = {
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""},
{"","","","","","","","","","","",""}
/** 28星宿对照表地支+星期 */
public static final Map<String,String> XIU = new HashMap<String,String>(){
private static final long serialVersionUID = -1;
{
put("申1","");
put("申2","");
put("申3","");
put("申4","");
put("申5","");
put("申6","");
put("申0","");
put("子1","");
put("子2","");
put("子3","");
put("子4","");
put("子5","");
put("子6","");
put("子0","");
put("辰1","");
put("辰2","");
put("辰3","");
put("辰4","");
put("辰5","");
put("辰6","");
put("辰0","");
put("巳1","");
put("巳2","");
put("巳3","");
put("巳4","");
put("巳5","");
put("巳6","");
put("巳0","");
put("酉1","");
put("酉2","");
put("酉3","");
put("酉4","");
put("酉5","");
put("酉6","");
put("酉0","");
put("丑1","");
put("丑2","");
put("丑3","");
put("丑4","");
put("丑5","");
put("丑6","");
put("丑0","");
put("寅1","");
put("寅2","");
put("寅3","");
put("寅4","");
put("寅5","");
put("寅6","");
put("寅0","");
put("午1","");
put("午2","");
put("午3","");
put("午4","");
put("午5","");
put("午6","");
put("午0","");
put("戌1","");
put("戌2","");
put("戌3","");
put("戌4","");
put("戌5","");
put("戌6","");
put("戌0","");
put("亥1","");
put("亥2","");
put("亥3","");
put("亥4","");
put("亥5","");
put("亥6","");
put("亥0","");
put("卯1","");
put("卯2","");
put("卯3","");
put("卯4","");
put("卯5","");
put("卯6","");
put("卯0","");
put("未1","");
put("未2","");
put("未3","");
put("未4","");
put("未5","");
put("未6","");
put("未0","");
}
};
/** 兽 */
public static final Map<String,String> SHOU = new HashMap<String,String>(){
@@ -210,7 +280,7 @@ public class LunarUtil{
put("","玄武");
}
};
/** 冲,即地支冲(子午相冲,丑未相冲,寅申相冲,辰戌相冲,卯酉相冲,巳亥相冲),由于地支对应十二生肖,也就对应了生肖相冲 */
/** 地支冲(子午相冲,丑未相冲,寅申相冲,辰戌相冲,卯酉相冲,巳亥相冲),由于地支对应十二生肖,也就对应了生肖相冲 */
public static final Map<String,String> CHONG = new HashMap<String,String>(){
private static final long serialVersionUID = -1;
{