mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix Date and aopbug
This commit is contained in:
@@ -1551,6 +1551,22 @@ public class DateUtil {
|
||||
return between(beginDate, endDate, DateUnit.DAY);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算指定指定时间区间内的周数
|
||||
*
|
||||
* @param beginDate 开始时间
|
||||
* @param endDate 结束时间
|
||||
* @param isReset 是否重置时间为起始时间
|
||||
* @return 周数
|
||||
*/
|
||||
public static long betweenWeek(Date beginDate, Date endDate, boolean isReset) {
|
||||
if (isReset) {
|
||||
beginDate = beginOfDay(beginDate);
|
||||
endDate = beginOfDay(endDate);
|
||||
}
|
||||
return between(beginDate, endDate, DateUnit.WEEK);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算两个日期相差月数<br>
|
||||
* 在非重置情况下,如果起始日期的天小于结束日期的天,月数要少算1(不足1个月)
|
||||
@@ -1723,23 +1739,11 @@ public class DateUtil {
|
||||
* @param start 开始时间
|
||||
* @param end 结束时间
|
||||
* @return 周数
|
||||
* @deprecated 请使用 {@link #betweenWeek(Date, Date, boolean)}
|
||||
*/
|
||||
@Deprecated
|
||||
public static int weekCount(Date start, Date end) {
|
||||
final Calendar startCalendar = Calendar.getInstance();
|
||||
startCalendar.setTime(start);
|
||||
final Calendar endCalendar = Calendar.getInstance();
|
||||
endCalendar.setTime(end);
|
||||
|
||||
final int startWeekofYear = startCalendar.get(Calendar.WEEK_OF_YEAR);
|
||||
final int endWeekofYear = endCalendar.get(Calendar.WEEK_OF_YEAR);
|
||||
|
||||
int count = endWeekofYear - startWeekofYear + 1;
|
||||
|
||||
if (Calendar.SUNDAY != startCalendar.get(Calendar.DAY_OF_WEEK)) {
|
||||
count--;
|
||||
}
|
||||
|
||||
return count;
|
||||
return (int) betweenWeek(start, end, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -719,4 +719,13 @@ public class DateUtilTest {
|
||||
final LocalDateTime localDateTime = DateUtil.parseLocalDateTime(strDate, "yyyy-MM-dd");
|
||||
Assert.assertEquals(strDate, DateUtil.format(localDateTime, DatePattern.NORM_DATE_PATTERN));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void betweenWeekTest() {
|
||||
final DateTime start = DateUtil.parse("2019-03-05");
|
||||
final DateTime end = DateUtil.parse("2019-10-05");
|
||||
|
||||
final long weekCount = DateUtil.betweenWeek(start, end, true);
|
||||
Assert.assertEquals(30L, weekCount);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user