Browse Source

时间2月时特殊计算

wujiefeng 9 tháng trước cách đây
mục cha
commit
86eacf263e

+ 22 - 11
RewardServer/src/main/java/com/zhongshu/reward/server/core/util/DateUtils.java

@@ -160,6 +160,12 @@ public class DateUtils {
         c.set(Calendar.DATE, 1);
         c.add(Calendar.DATE, day-1);
 
+        if (day >c.getActualMaximum(Calendar.DAY_OF_MONTH)){
+            c.set(Calendar.DATE, c.getActualMaximum(Calendar.DAY_OF_MONTH));
+        }else {
+            c.set(Calendar.DATE, day);
+        }
+
         c.set(Calendar.HOUR_OF_DAY, 23);
         c.set(Calendar.MINUTE, 59);
         c.set(Calendar.SECOND, 59);
@@ -178,6 +184,12 @@ public class DateUtils {
         c.set(Calendar.DATE, 1);
         c.add(Calendar.DATE, day-1);
 
+        if (day >c.getActualMaximum(Calendar.DAY_OF_MONTH)){
+            c.set(Calendar.DATE, c.getActualMaximum(Calendar.DAY_OF_MONTH));
+        }else {
+            c.set(Calendar.DATE, day);
+        }
+
         c.set(Calendar.HOUR_OF_DAY, 0);
         c.set(Calendar.MINUTE, 0);
         c.set(Calendar.SECOND, 0);
@@ -234,7 +246,7 @@ public class DateUtils {
 
         c.set(Calendar.HOUR_OF_DAY, hour);
         c.set(Calendar.MINUTE, minute);
-        c.set(Calendar.SECOND, 59);
+        c.set(Calendar.SECOND, 0);
         return c.getTimeInMillis();
     }
 
@@ -246,9 +258,9 @@ public class DateUtils {
     public static Long getHourMinuteEndTime(Integer hour, Integer minute) {
         Calendar c = Calendar.getInstance();
 
-        c.set(Calendar.HOUR_OF_DAY, 21);
-        c.set(Calendar.MINUTE, hour);
-        c.set(Calendar.SECOND, minute);
+        c.set(Calendar.HOUR_OF_DAY, hour);
+        c.set(Calendar.MINUTE, minute);
+        c.set(Calendar.SECOND, 0);
         return c.getTimeInMillis();
     }
 
@@ -262,12 +274,11 @@ public class DateUtils {
     }
 
     public static void main(String[] args) {
-        SecureRandom secureRandom = new SecureRandom();
-        byte[] key = new byte[32];
-        secureRandom.nextBytes(key);
-        ;
-        log.info("密钥:{}", Base64.getEncoder().encodeToString(key).substring(0, key.length));
-        log.info(paresTime(getDayOfMonthStartTime(2), FORMAT_LONG));
-        log.info(paresTime(getDayOfMonthEndTime(2), FORMAT_LONG));
+        Long hourMinuteStartTime = getHourMinuteStartTime(23, 0);
+
+        log.info(paresTime(getDayOfMonthStartTime(28), FORMAT_LONG));
+        log.info(paresTime( getDayOfMonthEndTime(30), FORMAT_LONG));
+//        log.info(paresTime(getDayOfMonthStartTime(2), FORMAT_LONG));
+//        log.info(paresTime(getDayOfMonthEndTime(2), FORMAT_LONG));
     }
 }