【发布时间】:2014-05-08 06:21:54
【问题描述】:
给定任务:我需要从当前日期(d,m,y)中获取下一个日期,并返回一个整数元组(日,月,年)。
这是我的代码:
def next_date(d, m, y):
if m == 12 and d == 31:
d, m, y = 1, 1, y+1
elif m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m== 10:
if d == 31:
d, m, y = 1, m+1, y
elif d > 31:
return 'No such date exist'
else:
d, m, y = d + 1, m, y
elif m== 4 or m == 6 or m == 9 or m == 11:
if d == 30:
d, m, y = 1, m+1, y
elif d > 30:
return 'No such date exist'
else:
d, m, y = d+1, m, y
elif m == 2:
if is_leap_year(y) and d == 29:
d, m, y = 1, 3, y
elif is_leap_year(y) and d == 28:
d,m,y = 29, m, y
if not is_leap_year(y):
if d == 28:
d, m, y = 1, 3, y
if d > 28:
return 'No such date exist'
else:
d, m, y = d + 1, m, y
return (d,m,y)
有没有比这更简单的代码,它不会给我一个无限循环? 非常感谢。
【问题讨论】:
-
你可以使用
datetime模块吗? -
那么到下一个日期我们应该明白什么?
-
@DSM 不,我不能使用日期时间