java获取指定日期所在周的第一天和最后一天
第一种方法
public static String getFirstAndLastOfWeek(String dataStr) throws ParseException {Calendar cal = Calendar.getInstance();cal.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(dataStr));int d = 0;if (cal.get(Calendar.DAY_OF_WEEK) == 1) {d = -6;} else {d = 2 - cal.get(Calendar.DAY_OF_WEEK);}cal.add(Calendar.DAY_OF_WEEK, d);// 所在周开始日期String data1 = new SimpleDateFormat("yyyy/MM/dd").format(cal.getTime());cal.add(Calendar.DAY_OF_WEEK, 6);// 所在周结束日期String data2 = new SimpleDateFormat("yyyy/MM/dd").format(cal.getTime());return data1 + "-" + data2;}
第二种方法
public static String getFirstAndLastOfWeek(int date) throws ParseException {Date InputDate = new SimpleDateFormat("yyyyMMdd").parse(String.valueOf(0101));Calendar cDate = Calendar.getInstance();cDate.setFirstDayOfWeek(Calendar.MONDAY);cDate.setTime(InputDate);Calendar firstDate = Calendar.getInstance();firstDate.setFirstDayOfWeek(Calendar.MONDAY);firstDate.setTime(InputDate);Calendar lastDate = Calendar.getInstance();lastDate.setFirstDayOfWeek(Calendar.MONDAY);lastDate.setTime(InputDate);if (cDate.get(Calendar.WEEK_OF_YEAR) == 1 && cDate.get(Calendar.MONTH) == 11) {firstDate.set(Calendar.YEAR, cDate.get(Calendar.YEAR) + 1);lastDate.set(Calendar.YEAR, cDate.get(Calendar.YEAR) + 1);}int typeNum = cDate.get(Calendar.WEEK_OF_YEAR);System.out.println(typeNum);firstDate.set(Calendar.WEEK_OF_YEAR, typeNum);firstDate.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 所在周开始日期String beginDate = new SimpleDateFormat("yyyy/MM/dd").format(firstDate.getTime());System.out.println(beginDate);lastDate.set(Calendar.WEEK_OF_YEAR, typeNum);lastDate.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);// 所在周结束日期String endDate = new SimpleDateFormat("yyyy-MM-dd").format(lastDate.getTime());System.out.println(endDate);return beginDate + "-" + endDate;}