首页 > 解决方案 > Python:timedelta 其他方式比较时间,同时每增加一个小时

问题描述

我正在构建停车场系统,但在比较时间时遇到了一些问题。假设“约翰”应该为停车一小时支付 5 美元。John 将车停在停车场 3:30 小时,并在停车时间在 3:33 停止时付款。所以我想在这里得到的是这样的东西,但问题是每小时做一个 if 是不合逻辑的。以某种方式仅计算要计算的付款总和的方法是什么。另外我没有提到的是 3:33 超过半小时,所以我们可以再数一个小时。但我想在这里做的是:

我的代码:

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

标签: python

解决方案


找出进入时间和退出时间之间的差异。计算总分钟,车辆在停车,然后计算费用。这是示例 -

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

推荐阅读