1
0
mirror of synced 2026-10-15 19:16:12 +08:00

v1.2.14 佛历新增27宿;修复宜忌重复的问题;修复获取气时缺冬至的问题。

This commit is contained in:
6tail
2021-12-08 21:45:12 +08:00
parent bab052909b
commit e9ec0fc4b9
9 changed files with 174 additions and 7 deletions

View File

@@ -83,11 +83,21 @@ public class Foto {
return l;
}
/**
* 是否月斋
*
* @return true/false
*/
public boolean isMonthZhai() {
int m = getMonth();
return 1 == m || 5 == m || 9 == m;
}
/**
* 是否杨公忌
*
* @return true/false
*/
public boolean isDayYangGong() {
for (FotoFestival f : getFestivals()) {
if ("杨公忌".equals(f.getName())) {
@@ -97,11 +107,21 @@ public class Foto {
return false;
}
/**
* 是否朔望斋
*
* @return true/false
*/
public boolean isDayZhaiShuoWang() {
int d = getDay();
return 1 == d || 15 == d;
}
/**
* 是否六斋日
*
* @return true/false
*/
public boolean isDayZhaiSix() {
int d = getDay();
if (8 == d || 14 == d || 15 == d || 23 == d || 29 == d || 30 == d) {
@@ -113,11 +133,21 @@ public class Foto {
return false;
}
/**
* 是否十斋日
*
* @return true/false
*/
public boolean isDayZhaiTen() {
int d = getDay();
return 1 == d || 8 == d || 14 == d || 15 == d || 18 == d || 23 == d || 24 == d || 28 == d || 29 == d || 30 == d;
}
/**
* 是否观音斋
*
* @return true/false
*/
public boolean isDayZhaiGuanYin() {
String k = getMonth() + "-" + getDay();
for (String d : FotoUtil.DAY_ZHAI_GUAN_YIN) {
@@ -128,6 +158,69 @@ public class Foto {
return false;
}
/**
* 获取星宿
*
* @return 星宿
*/
public String getXiu() {
return FotoUtil.getXiu(getMonth(), getDay());
}
/**
* 获取宿吉凶
*
* @return 吉/凶
*/
public String getXiuLuck() {
return LunarUtil.XIU_LUCK.get(getXiu());
}
/**
* 获取宿歌诀
*
* @return 宿歌诀
*/
public String getXiuSong() {
return LunarUtil.XIU_SONG.get(getXiu());
}
/**
* 获取政
*
* @return 政
*/
public String getZheng() {
return LunarUtil.ZHENG.get(getXiu());
}
/**
* 获取动物
*
* @return 动物
*/
public String getAnimal() {
return LunarUtil.ANIMAL.get(getXiu());
}
/**
* 获取宫
*
* @return 宫
*/
public String getGong() {
return LunarUtil.GONG.get(getXiu());
}
/**
* 获取兽
*
* @return 兽
*/
public String getShou() {
return LunarUtil.SHOU.get(getGong());
}
@Override
public String toString() {
return getYearInChinese() + "年" + getMonthInChinese() + "月" + getDayInChinese();

View File

@@ -842,8 +842,8 @@ public class Lunar {
*/
public String getJie() {
String jie = "";
for(int i=1,j=JIE_QI.length;i<j;i+=2){
String key = JIE_QI[i];
for(int i=0,j=JIE_QI_IN_USE.length;i<j;i+=2){
String key = JIE_QI_IN_USE[i];
Solar d = jieQi.get(key);
if (d.getYear() == solar.getYear() && d.getMonth() == solar.getMonth() && d.getDay() == solar.getDay()) {
jie = key;
@@ -860,8 +860,8 @@ public class Lunar {
*/
public String getQi() {
String qi = "";
for(int i=0,j=JIE_QI.length;i<j;i+=2){
String key = JIE_QI[i];
for(int i=1,j=JIE_QI_IN_USE.length;i<j;i+=2){
String key = JIE_QI_IN_USE[i];
Solar d = jieQi.get(key);
if (d.getYear() == solar.getYear() && d.getMonth() == solar.getMonth() && d.getDay() == solar.getDay()) {
qi = key;

View File

@@ -261,4 +261,25 @@ public class FotoUtil {
put("12-30", Collections.nCopies(1, new FotoFestival("诸神下降,察访善恶", "犯者男女俱亡")));
}
};
/**
* 27星宿,佛教从印度传入中国,印度把28星宿改为27星宿,把牛宿(牛金牛)纳入了女宿(女土蝠)。
*/
public static final String[] XIU_27 = {"角", "亢", "氐", "房", "心", "尾", "箕", "斗", "女", "虚", "危", "室", "壁", "奎", "娄", "胃", "昴", "毕", "觜", "参", "井", "鬼", "柳", "星", "张", "翼", "轸"};
/**
* 每月初一的27星宿偏移
*/
private static final int[] XIU_OFFSET = {11, 13, 15, 17, 19, 21, 24, 0, 2, 4, 7, 9};
/**
* 获取27星宿
*
* @param month 佛历月
* @param day 佛历日
* @return 星宿
*/
public static String getXiu(int month, int day) {
return XIU_27[(XIU_OFFSET[Math.abs(month)-1] + day - 1) % XIU_27.length];
}
}

File diff suppressed because one or more lines are too long