package com.cku.restful.v1; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import com.thinkgem.jeesite.common.utils.DateUtils; public class DateMina { public static void main(String[] args) { // Calendar cl = Calendar.getInstance(); // System.out.println("today is a 当年第" + cl.get(Calendar.WEEK_OF_YEAR) + "周"); // System.out.println("today is a 当月第" + cl.get(Calendar.DAY_OF_MONTH) + "天"); // System.out.println("today is a 当月第" + cl.get(Calendar.WEEK_OF_MONTH) + "周"); // // Calendar c = Calendar.getInstance(); // c.set(Calendar.YEAR, 2021); // c.set(Calendar.MONTH, 11); // c.setFirstDayOfWeek(Calendar.MONDAY); // System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH) + 1) + "月"); // System.out.println("天数:" + c.getActualMaximum(Calendar.WEEK_OF_YEAR)); // System.out.println("Actual周数:" + c.getActualMaximum(Calendar.WEEK_OF_MONTH)); // System.out.println("Max周数:" + c.getMaximum(Calendar.WEEK_OF_MONTH)); Calendar c1 = Calendar.getInstance(); c1.set(Calendar.YEAR, 2021); c1.set(Calendar.MONTH, Calendar.JANUARY); c1.set(Calendar.DAY_OF_YEAR, 1); // c1.setFirstDayOfWeek(Calendar.MONDAY); System.out.println(DateUtils.formatDate(c1.getTime(), "yyyy-MM-dd")); int currentYear = c1.get(Calendar.YEAR); Map> yearWeekMap = new HashMap<>(); for (int i = 1; i <= 12; i++) { yearWeekMap.put(i, new HashSet()); } while (true) { yearWeekMap.get(c1.get(Calendar.MONTH) + 1).add(c1.get(Calendar.WEEK_OF_YEAR)); c1.add(Calendar.DAY_OF_YEAR, 1); int newYear = c1.get(Calendar.YEAR); if (newYear > currentYear) { break; } } System.out.println("============================================="); yearWeekMap.keySet().stream().forEach(key -> { System.out.println("月份:" + key); yearWeekMap.get(key).stream().forEach(val -> { System.out.println("第" + val + "周"); }); }); } public int getWeekCount(Date date) { // 获取日历类实例 Calendar calendar = Calendar.getInstance(); // 设置时间 calendar.setTime(date); // 设置周一为每周第一天 calendar.setFirstDayOfWeek(java.util.Calendar.MONDAY); // 返回当年最大周数 return calendar.getActualMaximum(java.util.Calendar.WEEK_OF_YEAR); } }