【发布时间】:2026-01-05 06:00:01
【问题描述】:
我正在编写代码,让用户可以记下他们所拥有的事物的日期和时间。它包含开始日期、开始时间和结束时间。它还允许用户指定他们是否希望将其延续到多个星期(例如一个月的每个星期一) 我正在使用 for 循环来执行此操作,并且由于不同的月份有不同的日子,我显然希望(如果下周一是下个月)它有正确的日期。
这是我的代码:
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
我哪里出错了?
【问题讨论】:
-
就像previous question 中的评论者一样,我建议您使用
timedelta为datetime对象添加时间。那么你就完全不用担心月份的界限了。 -
@glibdud 我对日期时间真的很陌生,因为在学校里我们并没有真正深入。我喜欢它的外观,但我不知道实现它的好方法。
标签: python-3.x datetime