Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中查找特定分钟的下一次出现_Python_Python 3.x_Datetime - Fatal编程技术网

在python中查找特定分钟的下一次出现

在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

我是python的初学者,我需要做一件非常简单的事情

例如,如果实际时间是16:30,并且用户输入数字35,则我需要日期时间为16:35。 在同一个示例中,如果用户输入数字20,我需要17:20 datetime(下一次出现20分钟)


这段代码部分工作,但当分钟过去时(例如现在是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}')