java代码 处理字符串类型年月日期生成当前月份天数的ListMonthAttendanceLog集合
以下是处理字符串类型年月日期生成当前月份天数的List
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
public class MonthAttendanceLogGenerator {
/**
* 生成当前月份的考勤日志
* @param yearMonthStr 年月字符串,格式为"yyyy-MM"
* @return 当前月份的考勤日志List集合
*/
public List<MonthAttendanceLog> generateMonthAttendanceLog(String yearMonthStr) {
List<MonthAttendanceLog> monthAttendanceLogList = new ArrayList<>();
LocalDate yearMonth = LocalDate.parse(yearMonthStr + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
int daysOfMonth = yearMonth.lengthOfMonth(); // 当前月份天数
for (int i = 1; i <= daysOfMonth; i++) {
LocalDate date = LocalDate.of(yearMonth.getYear(), yearMonth.getMonth(), i);
MonthAttendanceLog attendanceLog = new MonthAttendanceLog(date);
monthAttendanceLogList.add(attendanceLog);
}
return monthAttendanceLogList;
}
public static void main(String[] args) {
MonthAttendanceLogGenerator generator = new MonthAttendanceLogGenerator();
List<MonthAttendanceLog> monthAttendanceLogList = generator.generateMonthAttendanceLog("2022-02");
System.out.println(monthAttendanceLogList);
}
}
class MonthAttendanceLog {
private LocalDate date;
public MonthAttendanceLog(LocalDate date) {
this.date = date;
}
public LocalDate getDate() {
return date;
}
@Override
public String toString() {
return "MonthAttendanceLog{" +
"date=" + date +
'}';
}
}
代码中的generateMonthAttendanceLog方法接受一个年月字符串,例如"2022-02",使用LocalDate类将其转换为LocalDate对象,然后通过lengthOfMonth方法获取当前月份的天数。接着,循环遍历每一天,生成一个MonthAttendanceLog对象,并将其添加到集合中返回。MonthAttendanceLog类只包含一个LocalDate对象,用于表示某一天的考勤日志。在main方法中,我们可以看到通过调用generateMonthAttendanceLog方法生成了一个包含28个考勤日志的List集合。
原文地址: https://www.cveoy.top/t/topic/bJkj 著作权归作者所有。请勿转载和采集!