在python中查找特定分钟的下一次出现
我是python的初学者,我需要做一件非常简单的事情 例如,如果实际时间是16:30,并且用户输入数字35,则我需要日期时间为16:35。 在同一个示例中,如果用户输入数字20,我需要17:20 datetime(下一次出现20分钟)在python中查找特定分钟的下一次出现,python,python-3.x,datetime,Python,Python 3.x,Datetime,我是python的初学者,我需要做一件非常简单的事情 例如,如果实际时间是16:30,并且用户输入数字35,则我需要日期时间为16:35。 在同一个示例中,如果用户输入数字20,我需要17:20 datetime(下一次出现20分钟) 这段代码部分工作,但当分钟过去时(例如现在是16:30,输入是20),结果也是过去的,但我需要在下一个小时,与示例类似。您可以使用条件minute
这段代码部分工作,但当分钟过去时(例如现在是16:30,输入是20),结果也是过去的,但我需要在下一个小时,与示例类似。您可以使用条件
minute
作为True
布尔值作为1
和False
作为0
您可以使用它作为一个偏移量来添加:添加一个timedelta
,以小时作为条件
您还可以使用datetime.replace()
来简化代码编写
desired_time = initial_data.replace(minute=minute, second=0) + \
timedelta(hours=(minute < initial_data.minute))
所需时间=初始数据。替换(分钟=分钟,秒=0)+\
时间增量(小时=(分钟<初始数据.分钟))
演示 [0,10,20,30,40,50]分钟内的
:
初始数据=日期时间(2020,1,1,23,35,10)
所需时间=初始数据。替换(分钟=分钟,秒=0)+\
时间增量(小时=(分钟<初始数据.分钟))
打印(分钟“,”所需时间“,”所需时间>初始数据)
#结果
02020-01-02 00:00:00真实
10 2020-01-02 00:10:00正确
20 2020-01-02 00:20:00正确
30 2020-01-02 00:30:00正确
40 2020-01-01 23:40:00对
50 2020-01-01 23:50:00正确
您可以计算需要添加的分钟数,以达到所需的时间,然后将其添加到初始日期时间:
desired_time = initial_data + datetime.timedelta(
minutes=(minute - initial_data.minute) % 60
)
如果要将秒数更改为0,请将
seconds=-initial_data.second
作为第二个参数添加到timedelta中。我对Python非常陌生,但这是我能想到的:
from datetime import datetime
FMT = '%H:%M'
now = datetime.now()
current_time = now.strftime(FMT)
hour = now.hour
minute_in = input("Enter minutes : ")
t = f'{hour}:{minute_in}'
t2 = datetime.strptime(t, FMT)
t1 = datetime.strptime(current_time, FMT)
if t1 < t2:
print(f'{hour}:{minute_in}')
else:
hour = now.hour
minute = now.minute
hour = hour + 1
if hour > 24:
hour = 1
print(f'{hour}:{minute_in}')
从日期时间导入日期时间
FMT='%H:%M'
now=datetime.now()
当前时间=现在。strftime(FMT)
小时=现在。小时
分钟=输入(“输入分钟:”)
t=f'{hour}:{minute_in}'
t2=datetime.strtime(t,FMT)
t1=datetime.strtime(当前时间,FMT)
如果t124小时:
小时=1
打印(f'{hour}:{minute_in})
Date对象具有.minute
属性,因此如果输入的时间分钟大于当前本地时间分钟,请使用relativedelta
或timedelta
添加小时,否则请选择当前小时。
desired_time = initial_data + datetime.timedelta(
minutes=(minute - initial_data.minute) % 60
)
from datetime import datetime
FMT = '%H:%M'
now = datetime.now()
current_time = now.strftime(FMT)
hour = now.hour
minute_in = input("Enter minutes : ")
t = f'{hour}:{minute_in}'
t2 = datetime.strptime(t, FMT)
t1 = datetime.strptime(current_time, FMT)
if t1 < t2:
print(f'{hour}:{minute_in}')
else:
hour = now.hour
minute = now.minute
hour = hour + 1
if hour > 24:
hour = 1
print(f'{hour}:{minute_in}')