添加用户时间 python 3

Adding user time in python 3

大家好,我用谷歌搜索了很多,但没有找到答案。 基本上我想将用户输入的时间添加到当前时间。
这只是我边学习边做的一个小项目Python。
因此,如果当前时间是 17:16 并且用户想要向其添加 1hr 30。我该怎么做。
这就是我所拥有的:

import datetime

flex = input("Enter your flex amount in HHMM:")

flex = flex[0]+flex[1]+"-"+flex[2]+flex[3]

time = datetime.datetime.now().strftime("%H-%M")

balance = time+flex

print(time)
print(flex)
print(balance)

我已经试过了

import datetime

flex = input("Enter your flex amount in HHMM:")
time = datetime.datetime.now().strftime("%H-%M")

flex = flex[0]+flex[1]+"-"+flex[2]+flex[3]
time = time[0]+time[1]+"-"+time[2]+time[3]

balance = datetime.timedelta(hours=int(time[0]+time[1]), 
minutes=int(time[2]+time[3]) + 
datetime.timedelta(hours=int(flex[0]+flex[1]), 
minutes=int(flex[2]+flex[3]))

但现在它抱怨它期待一个整数。但是如果我把它改成一个整数,那不会破坏我想添加的目的是时间。

谢谢

我使用答案让它工作。这是现在的样子谢谢朋友

from datetime import timedelta as td
import datetime as da

#flex = input("Enter your flex amount in HHMM:")
flex = "0134"
now = da.datetime.now()
user_hours = int(flex[:2])
user_minute = int(flex[2:5])
delay = td(hours=user_hours, minutes=user_minute)

balance = da.datetime.now()+delay

print("Lunch: " +str(lunch))
print("Time when balance at 00:00 : " +str(balance))
print("Now: " +str(now))

So if the current time is 17:16 and the user wants to add 1hr 30 to that. how would i do it.


您可以使用timedelta,即:

new_time = datetime.datetime.now() + datetime.timedelta(hours=1, minutes=30) # or simply minutes=90, etc...

简单地使用 timedelta 创建一个由 timedelta 对象指示的偏移量并将其添加到您的时间对象(与日期和日期时间相同)。

from datetime import timedelta, datetime

actual_time = datetime.now()
user_hours = int(flex[:3])
user_minute = int(flex[2:5])
delay = timedelta(hours=user_hours, minutes=user_minute)

print(datetime.now()+delay)

很酷,所以当 tring

balance = datetime.timedelta(hours=int(time[0]+time[1]), minutes=int(time[2]+time[3]) + datetime.timedelta(hours =int(flex[0]+flex[1]), 分钟=int(flex[2]+flex[3]))

它抱怨它期待一个整数而不是时间增量