给定一个整数输入。有没有办法用给定的整数来检查日期时间是否可能。我想生成所有这样的日期并返回最大的一个。我写的代码包含了太多的if-else情况,并且是唯一有效的时间约束。在
import random
sortime = []
hr1 = []
hr2 = []
min1 = []
min2 = []
sec1 = []
sec2 = []
index1 = 0
index2 = 0
index3 = 0
index4 = 0
index5 = 0
index6 = 0
ztn = [0,1,2,3,4,5,6,7,8,9]
anysix = [random.randint(0,9) for x in range(6)]
print(anysix)
def index_clk(any_six, index_pos, index, timelist, y):
global index1
for x in any_six:
if x <= y:
index_pos.append(x)
if index_pos == []:
print("no clock time possible")
index = max(index_pos)
index1 = index
timelist.append(index)
print(timelist)
any_six.remove(index)
print(any_six)
index = index1
print(index_clk(any_six = anysix, index_pos = hr1, index = index1, timelist = sortime, y = 2))
##print(index1)
if index1<2:
print(index_clk(any_six = anysix, index_pos = hr2, index = index2, timelist = sortime, y = 9))
else:
print(index_clk(any_six = anysix, index_pos = hr2, index = index2, timelist = sortime, y = 3))
sortime.append(":")
print(index_clk(any_six = anysix, index_pos = min1, index = index3, timelist = sortime, y = 5))
print(index_clk(any_six = anysix, index_pos = min2, index = index4, timelist = sortime, y = 9))
sortime.append(":")
print(index_clk(any_six = anysix, index_pos = sec1, index = index5, timelist = sortime, y = 5))
print(index_clk(any_six = anysix, index_pos = sec2, index = index6, timelist = sortime, y = 9))
for i in sortime:
print(i, end = "")
我可以使用上面的if-else实现DD-MM HH:MM格式。出于好奇,如果可以使用一些datetime对象和python中的格式来简化代码来实现上述功能。在
其实要简单得多:
except
中的打印将打印日期的问题。如果所有日期都正确生成,则将打印其中哪一个日期是最大日期。您不必使用显式参数将它们发送到
datetime.datetime
,我只是用它来显示它接受的参数的顺序。在您只需将其与正则表达式匹配,以适应日期格式:
但这只检查格式,如果日期有效,则不检查,因为只需在检查格式之后或之前将其设置为datetime:
^{pr2}$请注意,对于格式不正确和“错误”的日期(如第13个月)都会引发ValueError,因此,如果您想要不同的处理方式,请首先检查格式,例如使用正则表达式。在
希望有帮助。在
相关问题 更多 >
编程相关推荐