给我一段计算根据公司闸机刷卡记录计算员工出勤时间的python代码
时间: 2024-10-23 17:13:12 浏览: 64
当然可以。这是一个简单的Python代码片段,它假设你有一个包含员工ID、刷卡时间和闸机名称的数据列表,我们通过分析闸机名来确定员工何时进出公司:
```python
import datetime
# 假设你有这样的数据结构,每个字典代表一条刷卡记录
attendance_data = [
{"employee_id": "001", "entry_time": "08:00", "exit_time": "17:00", "gate": "A"},
# 更多记录...
]
def calculate_attendance(employee_id):
# 初始化上班和下班时间
start_time = None
end_time = None
for record in attendance_data:
if record["employee_id"] == employee_id:
if start_time is None and record["gate"] != "Exit":
start_time = datetime.datetime.strptime(record["entry_time"], "%H:%M")
elif end_time is None and record["gate"] == "Exit":
end_time = datetime.datetime.strptime(record["exit_time"], "%H:%M")
# 检查是否有完整的上下班记录
if start_time and end_time:
work_hours = (end_time - start_time).total_seconds() / 3600
return f"员工{employee_id}工作时间为:{work_hours:.2f}小时"
else:
return "未找到该员工的完整出勤记录"
# 调用函数并打印结果
print(calculate_attendance("001"))
```
阅读全文
相关推荐


















