将时间输出转换为浮点变量(Python) 从Tkinter导入* 从日期时间导入日期时间 从日期时间导入时间增量 输入数学 比率1=str(35.34) amp=2.40 pmp=2.50 signOnSun1=raw_输入(“你星期天什么时候签名的:”); signOffSun1=原始输入(“您在星期天什么时候注销:”); 如果(签名编号11100): 比率1=比率1+pmp elif(签名频率1>1800): 比率1=比率1+pmp 其他: 比率1=35.34 FMT='%H%M' timeWorkedSun1=((datetime.strtime(signOffSun1,FMT))-(datetime.strtime(signOnSun1,FMT)))

将时间输出转换为浮点变量(Python) 从Tkinter导入* 从日期时间导入日期时间 从日期时间导入时间增量 输入数学 比率1=str(35.34) amp=2.40 pmp=2.50 signOnSun1=raw_输入(“你星期天什么时候签名的:”); signOffSun1=原始输入(“您在星期天什么时候注销:”); 如果(签名编号11100): 比率1=比率1+pmp elif(签名频率1>1800): 比率1=比率1+pmp 其他: 比率1=35.34 FMT='%H%M' timeWorkedSun1=((datetime.strtime(signOffSun1,FMT))-(datetime.strtime(signOnSun1,FMT))),python,datetime,floating-point,Python,Datetime,Floating Point,*我想把timeWorkedSun1转换成float,这样我就可以用rate1乘以它,但这似乎是我生活中的祸根。有什么想法吗?*假设您想做的是让用户输入两个小时:分钟数字,并计算它们之间的小时+小时分数,然后像现在一样使用datetime,您可以做如下操作(简化): 或者,如果没有日期时间代码,我们可以: signOn = "09:15" signOff = "15:45" FMT = "%H:%M" timeWorkedSun = datetime.strptime(signOff, FM

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

假设您想做的是让用户输入两个
小时:分钟
数字,并计算它们之间的小时+小时分数,然后像现在一样使用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

但是,如果某人某天下午6点开始,第二天凌晨3点结束,那么这将失败,因此您可能需要重新考虑您的逻辑

假设您要做的是让用户输入两个小时:分钟数字,并计算它们之间的小时数+小时分数,然后像现在一样使用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

但是,如果某人某天下午6点开始,第二天凌晨3点结束,那么这将失败,因此您可能需要重新考虑您的逻辑

timeWorkedSun1
属于
datetime.timedelta
类型。调用其
total_seconds
方法将其转换为秒数(然后除以3600以小时和分数表示).即:


timeWorkedSun1
类型为
datetime.timedelta
。调用其
total_seconds
方法将其转换为秒数(然后除以3600以小时和分数表示)。即:


什么?小时?秒?一天的部分时间?所以我收到的输出格式是00:00:00。这很好。但例如,如果格式是8:00:00,我希望能够用一个浮点数乘以它。例如8:00:00*34.45不起作用。所以我基本上是计算我每天工作的小时数,然后乘以我的小时工资。这就是aimA的浮点值是多少?小时?秒?一天的部分?所以我收到的输出是00:00:00格式的。这很好。但例如,如果格式是8:00:00,我想用浮点值乘以它。例如8:00:00*34.45不起作用。所以我基本上是计算我每天工作的小时数,然后乘以我的小时数这就是aim2的大问题:timeWorkedSun.seconds是不可调用的(这是一个属性!),它不是总秒数--请尝试datetime.timedelta(days=1.seconds…!-)。你需要的是我的答案中的.total_seconds()。你是对的,时间轮班过了午夜,但是…你我的朋友是个怪胎天才!两大问题:timeWorkedSun.seconds不可调用(这是一个属性!),并且不是总秒数--请尝试datetime.timedelta(days=1.seconds…!-)。你需要的是我的答案中的.total_seconds()。你是对的,时间轮班过了午夜,但是…你我的朋友是个怪胎天才!
signOn = "09:15"
signOff = "15:45"

signOnP = [int(n) for n in signOn.split(":")]
signOffP = [int(n) for n in signOff.split(":")]

signOnH = signOnP[0] + signOnP[1]/60.0
signOffH = signOffP[0] + signOffP[1]/60.0

hours = signOffH - signOnH
time_mul_by_hourly_rate = (timeWorkedSun1.total_seconds() / 3600.0) * rate1