订购一个月产品,计算多久后到期
python 2.7.14
计算订购一个月产品的到期日期
【思考过程及实现思路】
首先判断是否闰年,这样发生在2月份产品订购可以很好的处理边界情况。
默认“订购一个月”为固定30天
接下来就是加上这30天,判断月份、年份是否进位。
另外还给出了默认自然月的订购情况,在注释里,逻辑相对更简单。
测试的话直接运行、输入对应日期即可。
# coding: utf-8
def getExpirationDate(year, month, day):
# 判断闰年及对应每月天数
if (year%4==0 and year%100!=0) or year%400==0:
days_per_month=[31,29,31,30,31,30,31,31,30,31,30,31]
else:
days_per_month=[31,28,31,30,31,30,31,31,30,31,30,31]
if day>days_per_month[month-1] or month>12:
return "您输入的日期有误"
#按固定30天算,可处理 2018 1 31 → 2018 3 2 这种边界情况
day += 30
while day>days_per_month[month-1]:
day = day-days_per_month[month-1]
month = month+1
# 如果是下一年
if month==13:
year+=1
month=1
'''
如果按自然月,以上则为:
if day>days_per_month[month]:
day = days_per_month[month]
month = month+1
if month==13:
year+=1
month=1
'''
return [year, month, day]
print 'Please enter the date(exp:2018 1 31)'
while True:
try:
year,month,day=map(int,raw_input('Date:').split())
print getExpirationDate(year, month, day)
except:
break