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對應的值就是這一天是這一年的第幾天,所以直接取出來用就行