增加八字和五行,可以算五行缺什么了。
This commit is contained in:
@@ -777,6 +777,48 @@ public class Lunar{
|
||||
return LunarUtil.NAYIN.get(getTimeInGanZhi());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取八字
|
||||
* @return 八字
|
||||
*/
|
||||
public String getBaZi(){
|
||||
String dayGan = getDayGan();
|
||||
int dayGanIndex = 1;
|
||||
for(int i=0,j=LunarUtil.GAN.length;i<j;i++){
|
||||
if(LunarUtil.GAN[i].equals(dayGan)){
|
||||
dayGanIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
dayGanIndex--;
|
||||
dayGanIndex%=5;
|
||||
String timeZhi = getTimeZhi();
|
||||
int timeZhiIndex = 1;
|
||||
for(int i=0,j=LunarUtil.ZHI.length;i<j;i++){
|
||||
if(LunarUtil.ZHI[i].equals(timeZhi)){
|
||||
timeZhiIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
timeZhiIndex--;
|
||||
String timeGan = LunarUtil.GAN[(dayGanIndex*12+timeZhiIndex)%10+1];
|
||||
return getYearInGanZhi()+getMonthInGanZhi()+getDayInGanZhi()+timeGan+getTimeZhi();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取五行,根据八字推算
|
||||
* @return 五行
|
||||
*/
|
||||
public String getWuXing(){
|
||||
StringBuilder s = new StringBuilder();
|
||||
String baZi = getBaZi();
|
||||
for(int i=0,j=baZi.length();i<j;i++){
|
||||
String letter = baZi.substring(i,i+1);
|
||||
s.append(i%2==0?LunarUtil.WU_XING_GAN.get(letter):LunarUtil.WU_XING_ZHI.get(letter));
|
||||
}
|
||||
return s.toString();
|
||||
}
|
||||
|
||||
public String toFullString(){
|
||||
StringBuilder s = new StringBuilder();
|
||||
s.append(toString());
|
||||
|
||||
@@ -553,7 +553,40 @@ public class LunarUtil{
|
||||
put("轸","蚓");
|
||||
}
|
||||
};
|
||||
|
||||
/** 天干五行 */
|
||||
public static final Map<String,String> WU_XING_GAN = new HashMap<String, String>(){
|
||||
private static final long serialVersionUID = -1;
|
||||
{
|
||||
put("甲","木");
|
||||
put("乙","木");
|
||||
put("丙","火");
|
||||
put("丁","火");
|
||||
put("戊","土");
|
||||
put("己","土");
|
||||
put("庚","金");
|
||||
put("辛","金");
|
||||
put("壬","水");
|
||||
put("癸","水");
|
||||
}
|
||||
};
|
||||
/** 地支五行 */
|
||||
public static final Map<String,String> WU_XING_ZHI = new HashMap<String, String>(){
|
||||
private static final long serialVersionUID = -1;
|
||||
{
|
||||
put("寅","木");
|
||||
put("卯","木");
|
||||
put("巳","火");
|
||||
put("午","火");
|
||||
put("辰","土");
|
||||
put("丑","土");
|
||||
put("戌","土");
|
||||
put("未","土");
|
||||
put("申","金");
|
||||
put("酉","金");
|
||||
put("亥","水");
|
||||
put("子","水");
|
||||
}
|
||||
};
|
||||
/** 纳音 */
|
||||
public static final Map<String,String> NAYIN = new HashMap<String,String>(){
|
||||
private static final long serialVersionUID = -1;
|
||||
|
||||
Reference in New Issue
Block a user