java程序统计每天打卡人数
时间: 2023-06-19 22:07:12 浏览: 118
要实现每天打卡人数的统计,可以考虑以下步骤:
1. 定义一个打卡记录类,包含打卡人的姓名和打卡时间等信息。
2. 在程序中创建一个日期变量,用于记录当前日期。
3. 创建一个打卡记录列表,用于存储所有打卡记录。
4. 在程序运行时,读取打卡记录文件,将其中的打卡记录加入打卡记录列表中。
5. 遍历打卡记录列表,对每个记录进行处理:如果记录的日期等于当前日期,则将该记录的姓名计入当天打卡人数。
6. 将当天打卡人数输出或保存到文件中。
下面是一个示例程序,可以作为参考:
```java
import java.io.*;
import java.text.*;
import java.util.*;
public class Attendance {
// 打卡记录类
static class Record {
String name; // 打卡人姓名
Date time; // 打卡时间
public Record(String name, Date time) {
this.name = name;
this.time = time;
}
}
public static void main(String[] args) {
// 创建日期变量
Date today = new Date();
// 创建打卡记录列表
List<Record> records = new ArrayList<>();
// 读取打卡记录文件
try (BufferedReader reader = new BufferedReader(new FileReader("attendance.txt"))) {
String line;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
while ((line = reader.readLine()) != null) {
String[] fields = line.split(",");
String name = fields[0];
Date time = dateFormat.parse(fields[1]);
records.add(new Record(name, time));
}
} catch (IOException | ParseException e) {
e.printStackTrace();
}
// 统计当天打卡人数
int count = 0;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
for (Record record : records) {
if (dateFormat.format(record.time).equals(dateFormat.format(today))) {
count++;
}
}
// 输出当天打卡人数
System.out.println("今天打卡人数:" + count);
}
}
```
在示例程序中,我们先定义了一个打卡记录类 Record,包含打卡人姓名和打卡时间两个属性。然后在程序中创建了一个日期变量 today,用于记录当前日期;创建了一个打卡记录列表 records,用于存储所有打卡记录。
在读取打卡记录文件时,我们使用了 BufferedReader 和 FileReader 两个类,逐行读取记录文件并解析每行数据,将解析出的打卡记录加入到打卡记录列表中。
接下来,我们使用 SimpleDateFormat 类将日期格式化为 yyyy-MM-dd 的形式,遍历打卡记录列表,对每个记录进行处理,如果记录的日期等于当前日期,则将该记录的姓名计入当天打卡人数。
最后,输出当天打卡人数。注意,这里我们使用了 System.out.println() 方法将结果输出到控制台,你可以将其改为将结果保存到文件中,具体实现方式可以参考 Java 的文件操作相关内容。
阅读全文