private static String getWeeksStarAndEnd(Integer year,Integer weekNumber) { String str = ""; if(year == null){ str = ""; return str; } if(weekNumber == null){ str = ""; return str; } WeekFields weekFields = WeekFields.of(Locale.getDefault()); LocalDate startDate = LocalDate.ofYearDay(year, 1) .with(TemporalAdjusters.firstInMonth(DayOfWeek.SUNDAY)).plusWeeks(weekNumber - 1); LocalDate endDate = startDate.plusDays(6); int startyear = startDate.getYear(); int endyear = endDate.getYear(); if(startyear != endyear){ int startMonth = startDate.getMonthValue(); int endMonth = endDate.getMonthValue(); //最后一周如果跨年,就取最后一天拼接 if(startMonth == 12 && startyear == year){ //获取输入年份的最后一天作为结束日期 LocalDate lastDayOfYear = LocalDate.of(year, 12, 31); str = startDate + " To " + lastDayOfYear; }else if(endMonth == 1 && startyear != year){ //第一周跨年的情况,取第一天和往后7天 LocalDate firstDayOfYear = LocalDate.of(year, 1, 1); LocalDate endDayOfFirstDayOfYear = firstDayOfYear.plusDays(6); str = firstDayOfYear + " To " + endDayOfFirstDayOfYear; } }else{ int firstMonth = startDate.getMonthValue(); int firstDate = startDate.getDayOfMonth(); if(firstMonth == 1 && firstDate != 1 && weekNumber ==1){ LocalDate firstDayOfYear = LocalDate.of(year, 1, 1); LocalDate endDayOfFirstDayOfYear = firstDayOfYear.plusDays(6); str = firstDayOfYear + " To " + endDayOfFirstDayOfYear; }else{ str = startDate + " To " + endDate; } } return str; }
Java 获取输入年份和周数的开始日期和结束日期
于 2023-12-18 16:47:59 首次发布