java做一个展示页面 展示当月每个人的总考勤信息
时间: 2024-05-03 09:22:38 浏览: 6
以下是一个简单的Java代码示例,用于展示当月每个人的总考勤信息。
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AttendanceReport {
private Map<String, Map<String, Integer>> attendanceData;
public AttendanceReport() {
attendanceData = new HashMap<String, Map<String, Integer>>();
}
public void addAttendance(String name, String date, int hours) {
if (!attendanceData.containsKey(name)) {
attendanceData.put(name, new HashMap<String, Integer>());
}
Map<String, Integer> attendance = attendanceData.get(name);
if (!attendance.containsKey(date)) {
attendance.put(date, 0);
}
int totalHours = attendance.get(date);
attendance.put(date, totalHours + hours);
}
public void generateReport() {
System.out.println("Attendance Report for Current Month");
for (String name : attendanceData.keySet()) {
System.out.println(name + ":");
Map<String, Integer> attendance = attendanceData.get(name);
List<String> dates = new ArrayList<String>(attendance.keySet());
dates.sort(String::compareTo);
for (String date : dates) {
int hours = attendance.get(date);
System.out.println(" - " + date + ": " + hours + " hours");
}
int totalHours = attendance.values().stream().mapToInt(Integer::intValue).sum();
System.out.println("Total Hours: " + totalHours);
System.out.println();
}
}
public static void main(String[] args) {
AttendanceReport report = new AttendanceReport();
report.addAttendance("Alice", "2021-10-01", 8);
report.addAttendance("Alice", "2021-10-03", 4);
report.addAttendance("Bob", "2021-10-01", 6);
report.addAttendance("Bob", "2021-10-02", 2);
report.addAttendance("Bob", "2021-10-03", 8);
report.generateReport();
}
}
```
这个代码示例首先定义了一个 `AttendanceReport` 类,用于存储考勤数据和生成报告。在 `addAttendance` 方法中,可以添加每个人在某个日期的考勤信息,以及考勤时长。在 `generateReport` 方法中,可以打印出每个人当月的考勤信息,包括每个日期的考勤时长和总时长。
在 `main` 方法中,我们可以创建一个 `AttendanceReport` 对象,并添加一些考勤数据。然后调用 `generateReport` 方法,打印出当月每个人的考勤信息报告。