public static List<ExcelDateHead> getByMonth(String date){ DateFormat dateFormat=new SimpleDateFormat("yyyy-MM"); Calendar c = Calendar.getInstance(); try { c.setTime(dateFormat.parse(date)); } catch (ParseException e) { // TODO: handle exception return null; } int firstDay=c.getMinimum(Calendar.DAY_OF_MONTH); int endDay=c.getActualMaximum(Calendar.DAY_OF_MONTH); List<ExcelDateHead> list=new ArrayList<ExcelDateHead>(); for (int i = firstDay; i <= endDay; i++) { c.set(Calendar.DAY_OF_MONTH, i); //c.add(Calendar.DAY_OF_MONTH, 1); String dayOfWeek=getWeekOfDate(c.getTime()); int weekint=c.get(Calendar.WEEK_OF_MONTH); String weeks=""; weeks=getweekOfMonth(weekint); String day=String.valueOf(i); int index=weekOfExist(weeks,list); if(index==-1){ ExcelDateHead excelDateHead=new ExcelDateHead(); excelDateHead.setWeekOfMonth(weeks); ExcelDateBody excelDateBody=new ExcelDateBody(); excelDateBody.setDay(day); excelDateBody.setWeek(dayOfWeek); excelDateBody.setDetail(c.getTime()); excelDateHead.getBody().add(excelDateBody); list.add(excelDateHead); }else { ExcelDateBody excelDateBody=new ExcelDateBody(); excelDateBody.setWeek(dayOfWeek); excelDateBody.setDay(day); excelDateBody.setDetail(c.getTime()); list.get(index).getBody().add(excelDateBody); } } return list; } /** * 获取指定日期是星期几 * 参数为null时表示获取当前日期是星期几 * @param date * @return */ public static String getWeekOfDate(Date date) { String[] weekOfDays = {"日", "一", "二", "三", "四", "五", "六"}; Calendar calendar = Calendar.getInstance(); if(date != null){ calendar.setTime(date); } int w = calendar.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0){ w = 0; } return weekOfDays[w]; } public static String getweekOfMonth(int week){ String[] weeks={"第一周","第二周","第三周","第四周","第五周","第六周"}; //System.out.println(week); int a=week-1; if(a<0){ a=0; } return weeks[a]; } public static int weekOfExist(String weeks,List<ExcelDateHead> list){ for (int i = 0; i < list.size(); i++) { if(list.get(i).getWeekOfMonth().equals(weeks)){ return i; } } return -1; }
时间: 2024-11-02 18:07:24