一切都在码中
// 获取本月总天数
public static int getDaysOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
public static Map<String, String> ggg(Date date) {
Map<String, String> result = new LinkedHashMap<>();
// 传入的日期格式化一下
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String dateStr = sdf.format(date);
// 这个月总共多少天
int max = getDaysOfMonth(date);
// 从这个月的一号开始计算 j == 号 几号
for (int j = 1; j <= max; ) {
String dayStr = j < 10 ? "0" + j : String.valueOf(j);
DateTime dateTime = DateUtil.parseDate(dateStr + "-" + dayStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateTime);
// 拿到星期几 国外周六 = 7 周末 = 1
int i = calendar.get(Calendar.DAY_OF_WEEK);
// 一周七天 减去当前星期几 比如今天周末 那 7-1=6 还差六天周六 周一 7-2=5 还差五天周六
int count = 7 - i;
// 当前天加上差值 等于周六
int i1 = j + count;
// 需要小于本月总天数
if (i1 <= max) {
result.put(dateStr + "-" + i1, "周六");
if (i1 + 1 <= max) {
result.put(dateStr + "-" + (i1 + 1), "周日");
}
}
// 跳多少天 加多少天 加一是因为当前的已经算过了
j += (count + 1);
}
return result;
}