将时间输出转换为浮点变量(Python)

2024-05-23 19:17:23 发布

您现在位置:Python中文网/ 问答频道 /正文

from Tkinter import *
from datetime import datetime
from datetime import timedelta
import math

rate1 = str(35.34) 
amp = 2.40
pmp = 2.50



signOnSun1 = raw_input("What time did you sign on Sunday: ");
signOffSun1 = raw_input("What time did you sign off Sunday: ");

if (signOnSun1 < 0600):
    rate1 = rate1 + amp
elif (signOnSun1 > 1100):
    rate1 = rate1 + pmp
elif (signOffSun1 > 1800):
    rate1 = rate1 + pmp
else:
    rate1 = 35.34

FMT = '%H%M'    
timeWorkedSun1 =  ( (datetime.strptime(signOffSun1, FMT)) -  (datetime.strptime   (signOnSun1, FMT)))

*我想把timeWorkedSun1转换成float,这样我就可以用rate1乘以它,但这似乎是我生命中的祸根。有什么想法吗?*


Tags: fromimportyouinputdatetimerawtimewhat
2条回答

假设您要做的是让用户输入两个hours:minutes数字,并计算它们之间的小时数+小时数的分数,然后像现在一样使用datetime,您可以做如下操作(简化):

signOn = "09:15"
signOff = "15:45"

FMT = "%H:%M"
timeWorkedSun =  datetime.strptime(signOff, FMT) -  datetime.strptime(signOn, FMT)

# timeWorkedSun is now a datetime.timedelta
fractionHours = timeWorkedSun.total_seconds()/60.0/60

或者,如果没有日期时间代码,我们可以:

^{pr2}$

然而,如果有人在一天的下午6点开始,第二天凌晨3点结束,那就失败了,所以你可能需要重新思考一下你的逻辑

timeWorkedSun1属于datetime.timedelta类型。调用它的total_seconds方法将其转换为数秒(然后除以3600得到小时和分数)。一、 电子邮件:

time_mul_by_hourly_rate = (timeWorkedSun1.total_seconds() / 3600.0) * rate1

相关问题 更多 >