1. 自己造轮子
year=int(input('请输入年份,如2019>>>'))
month=int(input('请输入月份,如8>>>'))
day=int(input('请输入日期,如25>>>'))
#下面这块代码是按照闰年计算
if (year%4==0 and year%100!=0) or (year%400==0):
calendar={1:31,2:29,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
if month==1:
print('这一天是这一年的第',day,'天')
else:
past_months=range(1,month)
#上面这行代码是计算已经过了多少个月,假设用户输入的是5月,那么这里就统计1到4月
past_days=day
#当月的日期一定要先加进去,比如用户输入5月18日,那么18肯定是要算进去的
for m in past_months:
past_days=past_days+calendar[m]
print('这一天是这一年的第',past_days,'天')
#下面这块代码是按照平年计算
else:
calendar={1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
if month==1:
print('这一天是这一年的第',day,'天')
else:
past_months=range(1,month)
past_days=day
for m in past_months:
past_days=past_days+calendar[m]
print('这一天是这一年的第',past_days,'天')
2. 用别人造好的轮子
import time
year=input('请输入年份,如2019>>>')
month=input('请输入月份,如8>>>')
day=input('请输入日期,如25>>>')
read_time=year+'-'+month+'-'+day
#把用户输入的时间转换成一种格式化的显示,比如2019-8-25
stru_time=time.strptime(read_time,'%Y-%m-%d')
#time模块的strptime方法可以把格式化的时间变成时间元组,比如time.struct_time(tm_year=2019, tm_mon=4, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=99, tm_isdst=-1)
print('这一天是这一年的第',stru_time.tm_yday,'天')
#时间元组中tm_yday对应的值就是这一天是这一年的第几天,所以直接取出来用就行