从周数中查找一周的开始日期

yay*_*zis 2 java date java-8

我用servlet和JSP构建了一个web应用程序,在我的Servlet中我计算了一周的数量:

 private int findWeekNumber(String myDate) 
    throws ParseException{
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date date;
        date = df.parse(myDate);
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        int week = cal.get(Calendar.WEEK_OF_YEAR);
        System.out.println("week number is:" + week);

        return week;
    }
Run Code Online (Sandbox Code Playgroud)

然后我保存week到我的数据库.然后我week从我的数据库中检索.我怎样才能得到一周的开始 - 结束日期(周开始是星期一)week?让我们说weekNumber是30,我想计算20/07/2015 - 2015年7月26日.这里功能相同

PDS*_*tat 7

Java 8版本

LocalDate week = LocalDate.now().with(ChronoField.ALIGNED_WEEK_OF_YEAR, yourWeekNumber);

LocalDate start = week.with(DayOfWeek.MONDAY);
LocalDate end = start.plusDays(6);
System.out.println(start +" - "+ end);
Run Code Online (Sandbox Code Playgroud)

  • 两件事:`LocalDate #with`不是静态方法,你需要一个LocalDate对象(例如`LocalDate.of(2015,1,1)`)来调用方法.正确的结束日期是`start.plusDays(6)`,而不是'week.plusDays(6)`. (2认同)