Python 将时间转换为浮点数

Python 将时间转换为浮点数,python,datetime,timedelta,Python,Datetime,Timedelta,我写了一个程序来计算我工作的小时数,但最后,它返回值作为时间 我从11:45工作到4:30。 我的程序返回4:45,我希望它返回4.75 我如何转换这个 我正在使用以下代码: import datetime as dt from datetime import timedelta start =(input("Enter start time: " )) end =(input("Enter start time: " )) start_dt = dt.datetime.strptime(s

我写了一个程序来计算我工作的小时数,但最后,它返回值作为时间

我从11:45工作到4:30。 我的程序返回4:45,我希望它返回4.75

我如何转换这个

我正在使用以下代码:

import datetime as dt

from datetime import timedelta

start =(input("Enter start time: " ))
end =(input("Enter start time: " ))
start_dt = dt.datetime.strptime(start, '%H:%M')
end_dt = dt.datetime.strptime(end, '%H:%M')
time =(end_dt - start_dt)
if time.days < 0:
    time=timedelta(days=0,seconds=time.seconds,microseconds=time.microseconds)
    time= str(time)
    time2=dt.datetime.strptime(time, '%H:%M:%S') 
    off_set=dt.datetime.strptime('12:00:00', '%H:%M:%S')
    time= time2 - off_set 

print (time)
将日期时间导入为dt
从日期时间导入时间增量
开始=(输入(“输入开始时间:”)
结束=(输入(“输入开始时间:”)
start_dt=dt.datetime.strtime(开始,“%H:%M”)
end_dt=dt.datetime.strtime(end,“%H:%M”)
时间=(结束时间-开始时间)
如果time.days<0:
时间=时间增量(天=0,秒=时间。秒,微秒=时间。微秒)
时间=str(时间)
time2=dt.datetime.strtime(时间,“%H:%M:%S”)
off_set=dt.datetime.strtime('12:00:00','%H:%M:%S')
时间=时间2-关闭设置
打印(时间)

如果使用datetime,则hour and minute方法应能满足您的需要

>>>a=datetime.datetime.now().time()
>>>a
datetime.time(21, 17, 35, 562000) 
>>>a.hour+a.minute/60.0
21.283333333333335
如果您使用的是timedelta(如代码中的情况),则应使用:

mytimedelta = atime - anothertime
secs=mytimedelta.seconds #timedelta has everything below the day level stored in seconds
minutes = ((secs/60)%60)/60.0
hours = secs/3600
print hours + minutes

如果您使用datetime,那么我建议:

>> import datetime
>> a = datetime.datetime.now()
datetime.datetime(2020, 5, 16, 11, 13, 59, 543985)
>> (a - datetime.datetime.combine(a.date(), datetime.time())).total_seconds() / 3600
11.233206662499999

现在还不清楚您要在此格式中设置哪个值:您的代码不会返回或打印任何内容仅供参考,这一行
time.seconds/60
绝对没有任何作用。请不要破坏您的问题。谢谢。请不要破坏你的帖子,为别人做更多的工作。通过在Stack Exchange(SE)网络上发布,您已根据授予SE分发该内容的不可撤销权利(即,无论您未来的选择如何)。根据SE政策,该帖子的非故意破坏版本是发布的版本。因此,任何故意破坏行为都将被恢复。不希望出现与您的帐户相关联的问题吗?