指定日期之前的python天数,不带日期库
我不允许使用日期库 我对这个循环的想法是减去开始月份剩下的天数,然后从下一个开始月份的MONTHLEN指数开始循环MONTHLEN,直到月底 IE 1121 它将给出29天,然后从2月1日开始,加上12月之前所有月份的总天数(但不包括12月),然后加上结束日期 所以28+31+30+31+30+31+31+31+30+31+30加上这个月的总天数,让我到12月,然后加上1的结束日期指定日期之前的python天数,不带日期库,python,date,Python,Date,我不允许使用日期库 我对这个循环的想法是减去开始月份剩下的天数,然后从下一个开始月份的MONTHLEN指数开始循环MONTHLEN,直到月底 IE 1121 它将给出29天,然后从2月1日开始,加上12月之前所有月份的总天数(但不包括12月),然后加上结束日期 所以28+31+30+31+30+31+31+31+30+31+30加上这个月的总天数,让我到12月,然后加上1的结束日期 我不确定我的想法编码的语法是否正确循环是解决此类问题的一种懒惰且低效的方法。您需要为每个日期获取一个日数,然后减去
我不确定我的想法编码的语法是否正确循环是解决此类问题的一种懒惰且低效的方法。您需要为每个日期获取一个日数,然后减去它们。另外,作为一个提示,您当前的逻辑没有考虑闰年。如果开始月份是,例如11月,结束月份是3月,您的程序应该怎么做?我要为闰年重构代码,我还需要找出反向月份
MONTHLEN = [ 0, # No month zero
31, # 1. January
28, # 2. February (ignoring leap years)
31, # 3. March
30, # 4. April
31, # 5. May
30, # 6. June
31, # 7. July
31, # 8. August
30, # 9. September
31, #10. October
30, #11. November
31, #12. December
]
def count_normal_year(year, start_month, start_date, end_month, end_date):
day_count=0
if start_month == end_month and start_date==end_date:
print(0)
else:
day_count+=(MONTHLEN[start_month]-start_date)
next_start_month_index=start_month + 1
for months in range(MONTHLEN[next_start_month_index, MONTHLEN[end_month]):
day_count+=MONTHLEN[months]
day_count +=end_date
print(day_count)