1.首先在maven中引入joda-time 目前最新的2.10.10
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.10</version>
</dependency>
2.通过起始周和结束周获取 起始周的周一和结束周的周日
// 解析年份和周数
int startYear = Integer.parseInt(startDateStr.split("-")[0])
int startWeek = Integer.parseInt(startDateStr.split("-")[1])
int endYear = Integer.parseInt(endDateStr.split("-")[0])
int endWeek = Integer.parseInt(endDateStr.split("-")[1])
// 计算起始日期(周一)和结束日期(周日)
DateTime dateTime = new DateTime().withYear(year).withWeekOfWeekyear(week)
if (dateTime.getDayOfWeek()!= DateTimeConstants.MONDAY){
dateTime = dateTime.dayOfWeek().withMinimumValue()
}
DateTime endTime = dateTime.dayOfWeek().withMaximumValue()
System.out.println(dateTime.toString("yyyy-MM-dd"))
System.out.println(endTime.toString("yyyy-MM-dd"))
3.这个是通过起始周 与 结束周 计算出一共几周
DateTime startDate = new DateTime("2023-12-04")
DateTime endDate = new DateTime("2023-12-24")
int weeks = Days.daysBetween(
startDate.dayOfWeek().withMinimumValue(),
endDate.dayOfWeek().withMaximumValue()
).dividedBy(7).getDays()
System.out.println("周数: " + weeks)