Python 3.x ValueError:日期超出了月份的范围
我正在编写一段代码,让用户可以为他们手头的东西写下日期和时间。它包含开始日期、开始时间和完成时间。它还允许用户指定他们是否希望它延续到多个星期(例如,一个月内的每个星期一) 我使用for循环来实现这一点,因为不同的月份有不同的日期,我显然希望(例如,如果下周一在下个月)它有正确的日期 这是我的代码:Python 3.x ValueError:日期超出了月份的范围,python-3.x,datetime,Python 3.x,Datetime,我正在编写一段代码,让用户可以为他们手头的东西写下日期和时间。它包含开始日期、开始时间和完成时间。它还允许用户指定他们是否希望它延续到多个星期(例如,一个月内的每个星期一) 我使用for循环来实现这一点,因为不同的月份有不同的日期,我显然希望(例如,如果下周一在下个月)它有正确的日期 这是我的代码: for i in range(0 , times): day = day month = month fulldateadd = datetime.date(year, mo
for i in range(0 , times):
day = day
month = month
fulldateadd = datetime.date(year, month, day)
day = day + 7
if month == ( '01' or '03' or '05' or '07' or '10'or '12'):
if day > 31:
print(day)
day = day - 31
print(day)
month = month + 1
elif month == ( '04' or '06'or '09' or '11'):
if day > 30:
print(day)
day = day - 30
print(day)
month = month + 1
elif month == '02':
if day > 29:
print(day)
day = day - 29
print(day)
month = month + 1
当运行此程序并测试它是否正确进入新月份时,我得到错误:
File "C:\Users\dansi\AppData\Local\Programs\Python\Python36-32\gui test 3.py", line 73, in addtimeslot
fulldateadd = datetime.date(year, month, day)
ValueError: day is out of range for month
我哪里出错了?如果没有看到前面的一些代码(例如,
天
、月
、年
、时间来自哪里),就很难完全准确,但下面是您可以在代码中使用时间增量
的方法:
fulldateadd = datetime.date(year, month, day)
for i in range(times):
fulldateadd = fulldateadd + datetime.timedelta(7)
实例表示一段时间,而不是特定的绝对时间。默认情况下,传递给构造函数的单个整数表示天数。因此timedelta(7)
为您提供一个表示7天的对象
timedelta
实例可以使用基本算法与datetime
或date
实例一起使用。例如,date(2016,12,31)+timedelta(1)
会给你date(2017,1,1)
,而你不需要做任何特殊的事情。如果没有看到之前的一些代码(例如,天
,月
,年
,以及时间
来自哪里),就很难完全准确,但以下是如何在代码中使用timedelta
:
fulldateadd = datetime.date(year, month, day)
for i in range(times):
fulldateadd = fulldateadd + datetime.timedelta(7)
实例表示一段时间,而不是特定的绝对时间。默认情况下,传递给构造函数的单个整数表示天数。因此timedelta(7)
为您提供一个表示7天的对象
timedelta
实例可以使用基本算法与datetime
或date
实例一起使用。例如,date(2016,12,31)+timedelta(1)
将为您提供date(2017,1,1)
,而您无需做任何特殊的事情。就像您的中的注释一样,我建议您使用它为datetime
对象添加时间。那你就不必担心月份的界限了。@glibdud我对最新的时间很陌生,因为在学校里我们并没有太多的细节。我喜欢它的外观,但我不知道实现它的好方法。与中的注释一样,我建议您使用它向datetime
对象添加时间。那你就不必担心月份的界限了。@glibdud我对最新的时间很陌生,因为在学校里我们并没有太多的细节。我喜欢它的外观,但我不知道如何实现它。完美的解释和答案。谢谢:)我知道这不是问问题的地方,但我能请你看看你是否能帮助解决其他问题吗?完美的解释和回答。谢谢:)我知道这不是问问题的地方,但我能请你看看你是否能帮我解决一些其他问题吗?