python - Python:timedelta 其他方式比较时间,同时每增加一个小时
问题描述
我正在构建停车场系统,但在比较时间时遇到了一些问题。假设“约翰”应该为停车一小时支付 5 美元。John 将车停在停车场 3:30 小时,并在停车时间在 3:33 停止时付款。所以我想在这里得到的是这样的东西,但问题是每小时做一个 if 是不合逻辑的。以某种方式仅计算要计算的付款总和的方法是什么。另外我没有提到的是 3:33 超过半小时,所以我们可以再数一个小时。但我想在这里做的是:
我不需要为停车创建太多的 if's 来计算 JOHN 必须支付的总和。
如何自动将 5 美元添加到约翰留在停车场的时间?
我的代码:
if Parking_Sum > datetime.timedelta(minutes=30):
print ("You were parking for more then 30MINS You have to pay 5$")
Price = 5
elif Parking_Sum > datetime.timedelta(hours=1):
print ("You were parking for more then hour You have to pay 10$")
Price = 10
elif Parking_Sum > datetime.timedelta(days=1):
print ("You were parking for more then DAY You have to pay 120$")
Price = 120
解决方案
找出进入时间和退出时间之间的差异。计算总分钟,车辆在停车,然后计算费用。这是示例 -
time_entered = datetime(year=2019, month=9, day=2, hour=10, minute=9)
time_left = datetime(year=2019, month=9, day=2, hour=12, minute=40)
total_minutes = ((time_left - time_entered).total_seconds())//60
total_hours = (total_minutes//60 + 1) if total_minutes%60 > 30 else (total_minutes//60)
total_charges = total_hours*5
推荐阅读
- php - 解析 PHP 的 XML
- logical-operators - 千里马——逻辑表达式的简化
- c# - 当前上下文中不存在名称“Core”
- python - 计算 pandas DataFrame 中的行百分比?
- javascript - 在模态关闭模态中单击锚点
- ios - IOS - Google Admob - 错误 Domain=com.google.ads Code=1 “请求错误:没有广告可显示。”
- linux - FTDI 设备的 udev 规则在 VMware Ubuntu 16.04 中不起作用
- mysql - mysql 字符串 group_concat 给我一个错误
- powerquery - Power Query 文本字符串以分钟为单位的持续时间 (1h 30m) 到 (90)
- java - 从几个变量到 JSON 字符串化字符串