public static List<Map<String, String>> getWeekDayInMonth(String date) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); List<Map<String, String>> resultList = new ArrayList<>(); String[] weeks = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; Calendar calendar = Calendar.getInstance(); try { calendar.setTime(sdf.parse(date)); } catch (Exception e) { e.printStackTrace(); } int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); int weekday = calendar.get(Calendar.DAY_OF_WEEK) - 1;// 1是星期日 String cWeekDay = weeks[weekday]; Map<String, String> fristDate = new HashMap<>(); fristDate.put("code", weekday + ""); fristDate.put("weekday", cWeekDay); fristDate.put("date", sdf.format(calendar.getTime())); resultList.add(fristDate); for (int i = 1; i < days; i++) { calendar.add(calendar.DATE, 1); int weekday2 = calendar.get(Calendar.DAY_OF_WEEK) - 1;// 1是星期日 String cWeekDay2 = weeks[weekday2]; Map<String, String> map = new HashMap<>(); map.put("code", weekday2 + ""); map.put("weekday", cWeekDay2); map.put("date", sdf.format(calendar.getTime())); resultList.add(map); } return resultList; }
public static void main(String[] args){ try { List<Map<String, String>> list=getWeekDayInMonth("2022-03-01"); for(Map<String, String> li:list){ System.out.println(li); } } catch (Exception e) { e.printStackTrace(); } }