gpt4 book ai didi

Python:计算特定时间段内的小时数

转载 作者:太空宇宙 更新时间:2023-11-03 18:01:06 26 4
gpt4 key购买 nike

我正在编写一个脚本来计算我每个工作日的工资,因为我们没有以电子方式发送计划。我们确实在某些时间段内赚取额外收入。

每小时我赚取61.86 DKK,但在某些时间段内我赚取额外的钱,如下所示。(为简单起见,我以 24 小时为周期计算时间,因为这是我习惯的)

Weekdays (18:00 - 06:00) 12.20 DKK
Saturday (15:00 - 24:00) 21.65 DKK
Sunday (whole day) 24.50 DKK

所以票价我已经算出来了,如何计算额外的钱和每小时的罚款。虽然我的问题是,如果我有一个工作 guard ,从 20:00 开始,到第二天 4:00 结束,那么它会给我错误。我有一个 IF 语句,如果时间超过 18 小时(即我在工作日获得额外收入的时间),则该语句会激活,然后我用 18 减去小时计数,得到我需要多少小时才能赚取额外收入。

    if d2.isoweekday() <= 5: #If its a weekday
if d2.hour >= 18:
extra += ((d2.hour - 18) * weekdaySalary) + ((d2.minute / 60) * weekdaySalary)

我如何检测特定时间段之间的确切时间间隔?

就像我必须约会

26-12-2014 17:00
27-12-2014 08:00

我需要一种方法来查看有多少工作时间在时间​​段(18:00-06:00)内。如何才能做到这一点?这就像有两个不同的日期范围。第一 - 当我得到额外的时候。第二 - 当我实际工作时。

26-12-2014 17:00
18:00 - extra money period start here
|
|how do i get the time between these to points?
|
06:00 - extra money period ends here
27-12-2014 08:00

也可以这样

26-12-2014 17:00
18:00 - extra money period start here
|
|how do i get the time between these to points?
|
27-12-2014 04:00
06:00 - extra money period ends here

每个答案都受到高度赞赏,花了很多时间试图弄清楚但没有真正的结果。

最佳答案

根据您提供的两个范围,假设您的轮类开始和结束时间,以下将计算从轮类开始到结束的工资,按基本费率或基本费率加上基于一天中时间的额外工资增加:

def calculate_ot(t1,t2):
t1 = datetime.strptime(t1, "%d-%m-%Y %H:%M")
t2 = datetime.strptime(t2, "%d-%m-%Y %H:%M")
days = ((t2 - t1).days * 86400)
hours, rem = divmod((t2 - t1).seconds + days, 3600)
start_ot = datetime.strptime("18:00 {}".format(t1.date()), "%H:%M %Y-%m-%d")
end_ot = datetime.strptime("06:00 {}".format(t2.date()), "%H:%M %Y-%m-%d")

total_pay = 0
for x in range(hours): # loop in total hour time difference
# if we are within the range of extras pay increase by normal rate plus ot
if start_ot <= t1 < end_ot and t1 < t2:
total_pay += 62 # or 62.20 you have conflicting examples
else:
# else just add basic pay rate
total_pay == 50
t1 += timedelta(hours=1) # keep adding another hour
return total_pay

关于Python:计算特定时间段内的小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27659495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com