summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordoufenghu <[email protected]>2020-06-06 21:30:07 +0800
committerdoufenghu <[email protected]>2020-06-06 21:30:07 +0800
commita1473a9f9fe53ecbcecfe37a7c2e1bcaf05a6c1c (patch)
treee799ca4b9b3f7e6825ee58fa0df2b8f0e88c8ece
parent03864d26cf41503fba7a47659dda6433763815c9 (diff)
fix(DateUtils):修复floor 策略为0异常 day、month 问题;v1.0.3.200609
后续需要统一起始时间段解决PND/PNM 问题
-rw-r--r--src/main/java/com/zdjizhi/utils/DateUtils.java18
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();
}