Procházet zdrojové kódy

大运时间出错处理

zhangbin před 1 rokem
rodič
revize
2415314a25

+ 18 - 14
xpgx-service/src/main/java/com/miaxis/gan/service/impl/GanZhiServiceImpl.java

@@ -699,11 +699,12 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
 
         if (daYun == 1) { //大运顺
             int daYunCount = 0;
-            int dayDiff = Math.abs(list.get(1).getDaysDifference());
-            int qiyunSui = (dayDiff / 3);  //计算起运岁数
-            System.out.println("大运顺起运岁数:" + qiyunSui);
+            double dayDiff = Math.abs(list.get(1).getDaysDifference());
+            double qiYunSuiDB = (dayDiff / 3);  //计算起运岁数
+            int qiYunSui = (int)Math.ceil(qiYunSuiDB);
+            System.out.println("大运顺起运岁数:" + qiYunSui);
 
-            int year = lunar.getYear() + 10;
+            int year = lunar.getYear() + qiYunSui;
             System.out.println("大运顺起运岁年份数:" + year + "岁");
 
             String monthZhu = ganZhiDto.getMonthGan() + ganZhiDto.getMonthZhi();
@@ -714,8 +715,8 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
             for (int i = 60; i < jiaziList.size(); i++) {
                 if (flag) {
                     daYunCount++;
-                    int daYunYear = lunar.getYear() + 10 * daYunCount; //大运年份
-                    int daYunSui = qiyunSui + (10 * daYunCount) - 10; // 大运岁数
+                    int daYunYear = year + (10 * daYunCount) - 10; //大运年份
+                    int daYunSui = qiYunSui + (10 * daYunCount) - 10; // 大运岁数
 
                     Map<String, String> daYumMap = new TreeMap<String, String>();
                     daYumMap.put("daYunYear", daYunYear + "");
@@ -735,9 +736,14 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
             ganZhiDto.setDaYunList(daYunList);
         } else if (daYun == 2) { //大运逆
             int daYunCount = 0;
-            int dayDiff = Math.abs(list.get(0).getDaysDifference());
-            int qiyunSui = (dayDiff / 3);  //计算起运岁数
-            System.out.println("大运逆起运岁数:" + qiyunSui);
+            double dayDiff = Math.abs(list.get(0).getDaysDifference());
+            double qiYunSuiDB = (dayDiff / 3);  //计算起运岁数
+            int qiYunSui = (int)Math.ceil(qiYunSuiDB);
+            System.out.println("大运顺起运岁数:" + qiYunSui);
+
+            int year = lunar.getYear() + qiYunSui;
+            System.out.println("大运顺起运岁年份数:" + year + "岁");
+
             String monthZhu = ganZhiDto.getMonthGan() + ganZhiDto.getMonthZhi();
             List<String> jiaziList = new ArrayList<String>(shiShenConfig.getLiushijiazi());
             List<Map<String, String>> daYunList = new ArrayList<Map<String, String>>();
@@ -745,8 +751,8 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
             for (int i = 119; i >= 0; i--) {
                 if (flag) {
                     daYunCount++;
-                    int daYunYear = lunar.getYear() + 10 * daYunCount; //大运年份
-                    int daYunSui = qiyunSui + (10 * daYunCount) - 10; // 大运岁数
+                    int daYunYear = year + (10 * daYunCount) - 10; //大运年份
+                    int daYunSui = qiYunSui + (10 * daYunCount) - 10; // 大运岁数
                     Map<String, String> daYumMap = new TreeMap<String, String>();
                     daYumMap.put("daYunYear", daYunYear + "");
                     daYumMap.put("daYunSui", daYunSui + "岁");
@@ -1082,7 +1088,7 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
 
 
     @Override
-    public Map<String,String> getGeJu(List<GanZhiRowVo> list,int maxTianGan, String qr) {
+    public Map<String, String> getGeJu(List<GanZhiRowVo> list, int maxTianGan, String qr) {
 
         String yearGan = list.get(0).getShiShen1();
         String monthGan = list.get(2).getShiShen1();
@@ -1110,8 +1116,6 @@ public class GanZhiServiceImpl extends ServiceImpl<GanZhiMapper, GanZhi> impleme
         }
 
 
-
-
         return null;
     }