Merge branch 'v1.1.0-SNAPSHOT'
This commit is contained in:
@@ -219,7 +219,7 @@ public class Solar{
|
||||
Solar today = new Solar();
|
||||
Lunar lunar = today.getLunar();
|
||||
int offsetYear = LunarUtil.getJiaZiIndex(lunar.getYearInGanZhiExact())-LunarUtil.getJiaZiIndex(yearGanZhi);
|
||||
if (offsetYear<0){
|
||||
if(offsetYear<0){
|
||||
offsetYear = offsetYear+60;
|
||||
}
|
||||
int startYear = today.getYear() - offsetYear;
|
||||
@@ -230,37 +230,44 @@ public class Solar{
|
||||
hour = (i-1)*2;
|
||||
}
|
||||
}
|
||||
int year = startYear-1;
|
||||
while(year>=SolarUtil.BASE_YEAR) {
|
||||
while(startYear>=SolarUtil.BASE_YEAR-1){
|
||||
int year = startYear-1;
|
||||
int counter = 0;
|
||||
int month = 12;
|
||||
int day;
|
||||
boolean found = false;
|
||||
while (counter < 15) {
|
||||
day = 1;
|
||||
if(year==SolarUtil.BASE_YEAR){
|
||||
if(month<SolarUtil.BASE_MONTH){
|
||||
continue;
|
||||
}else if(month==SolarUtil.BASE_MONTH){
|
||||
if(year>=SolarUtil.BASE_YEAR){
|
||||
day = 1;
|
||||
if(year==SolarUtil.BASE_YEAR&&month==SolarUtil.BASE_MONTH){
|
||||
day = SolarUtil.BASE_DAY;
|
||||
}
|
||||
}
|
||||
Solar solar = new Solar(year, month, day, hour, 0, 0);
|
||||
lunar = solar.getLunar();
|
||||
if (lunar.getYearInGanZhiExact().equals(yearGanZhi) && lunar.getMonthInGanZhiExact().equals(monthGanZhi)) {
|
||||
found = true;
|
||||
break;
|
||||
Solar solar = new Solar(year, month, day, hour, 0, 0);
|
||||
lunar = solar.getLunar();
|
||||
if(lunar.getYearInGanZhiExact().equals(yearGanZhi) && lunar.getMonthInGanZhiExact().equals(monthGanZhi)){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
month++;
|
||||
if (month > 12) {
|
||||
if(month > 12){
|
||||
month = 1;
|
||||
year++;
|
||||
}
|
||||
counter++;
|
||||
}
|
||||
if (found) {
|
||||
if(found){
|
||||
counter = 0;
|
||||
Solar solar = new Solar(year, month-1, 1, hour, 0, 0);
|
||||
month--;
|
||||
if(month<1){
|
||||
month = 12;
|
||||
year--;
|
||||
}
|
||||
day = 1;
|
||||
if(year==SolarUtil.BASE_YEAR&&month==SolarUtil.BASE_MONTH){
|
||||
day = SolarUtil.BASE_DAY;
|
||||
}
|
||||
Solar solar = new Solar(year, month, day, hour, 0, 0);
|
||||
while (counter < 61) {
|
||||
lunar = solar.getLunar();
|
||||
if (lunar.getYearInGanZhiExact().equals(yearGanZhi) && lunar.getMonthInGanZhiExact().equals(monthGanZhi) && lunar.getDayInGanZhiExact().equals(dayGanZhi) && lunar.getTimeInGanZhi().equals(timeGanZhi)) {
|
||||
@@ -271,7 +278,7 @@ public class Solar{
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
year -= 61;
|
||||
startYear -= 60;
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
@@ -1101,19 +1101,21 @@ public class LunarUtil{
|
||||
* @return 距离天数
|
||||
*/
|
||||
public static int computeAddDays(int year,int month,int day){
|
||||
if(BASE_YEAR==year&&BASE_MONTH==month){
|
||||
return day-BASE_DAY;
|
||||
}
|
||||
int y = BASE_YEAR;
|
||||
int m = BASE_MONTH;
|
||||
int diff = getDaysOfMonth(y,m)-BASE_DAY;
|
||||
m = nextMonth(y,m);
|
||||
while(true){
|
||||
diff += getDaysOfMonth(y,m);
|
||||
while(y!=year||m!=month){
|
||||
m = nextMonth(y,m);
|
||||
if(m==1){
|
||||
y++;
|
||||
}
|
||||
if(y==year&&m==month){
|
||||
diff += day;
|
||||
break;
|
||||
}else {
|
||||
diff += getDaysOfMonth(y, m);
|
||||
}
|
||||
}
|
||||
return diff;
|
||||
|
||||
@@ -79,7 +79,7 @@ public class BaZiTest {
|
||||
@Test
|
||||
public void testBazi2Solar7() {
|
||||
List<Solar> l = Solar.fromBaZi("庚子", "辛巳", "庚午", "丙子");
|
||||
// [2020-07-21 22:00:00, 1960-08-05 22:00:00]
|
||||
// [2020-05-26 23:00:00, 2020-05-27 00:00:00]
|
||||
for (Solar solar : l) {
|
||||
System.out.println(solar.toFullString());
|
||||
}
|
||||
@@ -88,7 +88,16 @@ public class BaZiTest {
|
||||
@Test
|
||||
public void testBazi2Solar() {
|
||||
List<Solar> l = Solar.fromBaZi("庚子", "癸未", "乙丑", "丁亥");
|
||||
// [2020-05-26 23:00:00, 2020-05-27 00:00:00]
|
||||
// [2020-07-21 22:00:00, 1960-08-05 22:00:00]
|
||||
for (Solar solar : l) {
|
||||
System.out.println(solar.toFullString());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBazi2Solar2() {
|
||||
List<Solar> l = Solar.fromBaZi("庚子", "戊子", "己卯", "庚午");
|
||||
// [1960-12-17 12:00:00, 1901-01-01 12:00:00]
|
||||
for (Solar solar : l) {
|
||||
System.out.println(solar.toFullString());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user