帮我写一个代码,要求:定义车辆进入停车场的时间和离开停车场的时间。 计算停车时长,可以使用时间差的方式来计算。 根据停车场的计费规则,计算停车费用。 将计费信息保存到数据库中,以备后续查询和统计。
时间: 2024-05-07 12:16:13 浏览: 94
好的,根据您的要求,以下是一个示例代码,可以实现定义车辆进入停车场的时间和离开停车场的时间,并计算停车时长和停车费用,并将计费信息保存到数据库中。
```python
import datetime
import sqlite3
# 连接数据库
conn = sqlite3.connect('parking.db')
c = conn.cursor()
# 创建停车场表
c.execute('''CREATE TABLE IF NOT EXISTS parking
(plate_num text, enter_time text, leave_time text, duration integer, fee real)''')
# 定义计费规则
hourly_rate = 10 # 每小时收费10元
# 定义函数:车辆进入停车场
def enter_parking(plate_num):
enter_time = datetime.datetime.now()
c.execute("INSERT INTO parking (plate_num, enter_time) VALUES (?, ?)", (plate_num, enter_time))
conn.commit()
print('车辆 {} 进入停车场,时间为 {}'.format(plate_num, enter_time))
# 定义函数:车辆离开停车场
def leave_parking(plate_num):
c.execute("SELECT enter_time FROM parking WHERE plate_num = ? ORDER BY enter_time DESC LIMIT 1", (plate_num,))
enter_time = c.fetchone()[0]
leave_time = datetime.datetime.now()
duration = (leave_time - enter_time).seconds // 3600 # 计算停车时长(以小时为单位)
fee = duration * hourly_rate # 计算停车费用
c.execute("UPDATE parking SET leave_time = ?, duration = ?, fee = ? WHERE plate_num = ? AND enter_time = ?", (leave_time, duration, fee, plate_num, enter_time))
conn.commit()
print('车辆 {} 离开停车场,时间为 {},停车时长为 {} 小时,停车费用为 {} 元'.format(plate_num, leave_time, duration, fee))
# 测试代码
enter_parking('粤B12345')
leave_parking('粤B12345')
# 关闭数据库连接
conn.close()
```
以上代码使用 SQLite 数据库保存计费信息,如果您需要使用其它数据库,可以根据需要进行修改。另外,以上代码仅为示例,实际应用中还需要考虑异常情况的处理,例如车辆重复进入、离开时间早于进入时间等情况。
阅读全文
相关推荐

















