public class TestTotal {
public static void main(String[] args) throws ParseException {
for (int j = 0; j < 3; j++) {
Map<String, Date> map = getMonthDate("2021-02-01", j);
System.out.println(map.get("开始月份")+"-------"+map.get("结束月份"));
}
}
private static Map<String, Date> getMonthDate(String startDateStr, int j) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = sdf.parse(startDateStr);
Map<String, Date> dateMap = new HashMap<>();
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
calendar.set(calendar.MONTH,calendar.get(Calendar.MONTH)+j);
dateMap.put("开始月份",calendar.getTime());
int lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
calendar.set(Calendar.DAY_OF_MONTH, lastDay);
dateMap.put("结束月份",calendar.getTime());
return dateMap;
}
}
结果

适用于多个月时,每个月生成一条记录包含当月的开始日期和结束日期字段,并且起始月份是一号开始的....

该博客介绍了如何使用Java的Calendar类来获取指定月份的第一天和最后一天,以便于处理跨越多个月的数据记录,确保起始日期始终为每月的第一天。
跟最后一天(结束日期)----calendar获取月份&spm=1001.2101.3001.5002&articleId=117165980&d=1&t=3&u=9b31e82f529f4dadb4b8af301101015a)
1640

被折叠的 条评论
为什么被折叠?



