diff options
| author | doufenghu <[email protected]> | 2020-06-06 21:30:07 +0800 |
|---|---|---|
| committer | doufenghu <[email protected]> | 2020-06-06 21:30:07 +0800 |
| commit | a1473a9f9fe53ecbcecfe37a7c2e1bcaf05a6c1c (patch) | |
| tree | e799ca4b9b3f7e6825ee58fa0df2b8f0e88c8ece | |
| parent | 03864d26cf41503fba7a47659dda6433763815c9 (diff) | |
fix(DateUtils):修复floor 策略为0异常 day、month 问题;v1.0.3.200609
后续需要统一起始时间段解决PND/PNM 问题
| -rw-r--r-- | src/main/java/com/zdjizhi/utils/DateUtils.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/main/java/com/zdjizhi/utils/DateUtils.java b/src/main/java/com/zdjizhi/utils/DateUtils.java index 56fbed0..1c7a5d7 100644 --- a/src/main/java/com/zdjizhi/utils/DateUtils.java +++ b/src/main/java/com/zdjizhi/utils/DateUtils.java @@ -655,10 +655,12 @@ public class DateUtils implements TimeConstants { final int months = period.getMonths(); if (months > 0) { + int m = dateTime.getMonthOfYear(); - m -= m % months; + if (m % months != m) { + m -= m % months; + } dateTime = dateTime.withMonthOfYear(m).withDayOfMonth(1).withHourOfDay(0).withMinuteOfHour(0).withSecondOfMinute(0).withMillisOfSecond(0); - return dateTime.toDate(); } @@ -666,7 +668,10 @@ public class DateUtils implements TimeConstants { final int weeks = period.getWeeks(); if (weeks > 0) { int w = dateTime.getWeekOfWeekyear(); - w -= w % weeks; + + if (w % weeks != w) { + w -= w % weeks; + } dateTime = dateTime.withWeekOfWeekyear(w).withDayOfWeek(1).withHourOfDay(0).withMinuteOfHour(0).withSecondOfMinute(0).withMillisOfSecond(0); return dateTime.toDate(); @@ -677,7 +682,10 @@ public class DateUtils implements TimeConstants { final int days = period.getDays(); if (days > 0) { int d = dateTime.getDayOfMonth(); - d -= d % days; + if (d % days != d) { + d -= d % days; + } + dateTime = dateTime.withDayOfMonth(d).withHourOfDay(0).withMinuteOfHour(0).withSecondOfMinute(0).withMillisOfSecond(0); return dateTime.toDate(); } @@ -686,7 +694,7 @@ public class DateUtils implements TimeConstants { final int hours = period.getHours(); if (hours > 0) { int h = dateTime.getHourOfDay(); - h -= h % hours; + h -= h % hours; dateTime = dateTime.withHourOfDay(h).withMinuteOfHour(0).withSecondOfMinute(0).withMillisOfSecond(0); return dateTime.toDate(); } |
