两种简易的方法:
分析2-列表
1,平年闰年的月份是固定的,p_list为平年数据,r_list为闰年数据
p_list = [0,31,59,90,120,151,181,212,243,273,304,334]
r_list = [0,31,60,91,121,152,182,213,244,274,305,335]
2,先判断是否是闰年,如果为整百的,能够被400整除的是闰年,即年份%400==0 如果年份不是整百的能够被4整除就是闰年,否则就为平年。闰年二月份有29天, 平年2月份有28天
3,天数直接累加
p_list = [0,31,59,90,120,151,181,212,243,273,304,334]
r_list = [0,31,60,91,121,152,182,213,244,274,305,335]
str1 = input("请输入年月日:例 2018.11.06")
a, b, c = ('.')
a = int(a)
b = int(b)
c = int(c)
def f(str1):
if (a % 100 == 0 and a % 400 == 0) or (a % 100 != 0 and a % 4 == 0):
return r_list[b-1]+c
else:
return p_list[b-1]+c
print(f(str1))
分析2-时间戳相减
把输入的时间转换为时间戳,再把当前年份第一天的是时间转换为时间戳,
两个相减得到所有秒数,把秒数转换为天数
# 字符类型的时间
tss1 = '2016-10-10'
# 转为时间数组
timeArray = (tss1, "%Y-%m-%d")
timeStamp = int((timeArray))
print(timeStamp) # 输入时间的时间戳
btime=str(timeArray.tm_year)+"-01-01"
bArray = (btime, "%Y-%m-%d")
bStamp = int((bArray))
print(bStamp) # 当前年一月一号的时间戳
print(int((timeStamp-bStamp)/(24*60*60))+1)