转换时间

2024-05-13 07:08:26 发布

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

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

例句:我从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)

Tags: import程序inputdatetimetimedtdaysstart
1条回答
网友
1楼 · 发布于 2024-05-13 07:08:26

如果使用datetime,那么hour和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

相关问题 更多 >