中國有句俗語叫“三天打魚兩天曬網”。某人從1990年1月1日起開始“三天打魚兩天曬網”,問這個人在你編寫此程序的這天是打魚還是曬網。
(提示:此題要用到時間函數datetime()。先計算你編程的這天 datetime.now()與1990年1月1日相差的天數,再用相差天對5求模%,余數如果是0,1,2就是打魚,否則就是曬網)
1 from datetime import datetime 2 before = datetime.strptime('1990-01-01 08:00:00','%Y-%m-%d %H:%M:%S') 3 now = datetime.now() 4 t = now - before #t.days屬性是兩個日期相差的天數 5 x = t.days % 5 6 if x in [0,1,2]: 7 print("今天打魚") 8 else: 9 print("今天曬網")
學語言,多練習(>人<;)
1 >>> type(before) 2 <class 'datetime.datetime'> 3 >>> type(now) 4 <class 'datetime.datetime'> 5 >>> type(t) 6 <class 'datetime.timedelta'> 7 >>> type(x) 8 <class 'int'>
用到了:
>>> datetime.now()#返回當前系統時間 datetime.datetime(2020, 3, 18, 23, 23, 42, 575587) >>> datetime.strptime('1990-01-01 08:00:00','%Y-%m-%d %H:%M:%S')#由字符串格式轉化為日期格式 datetime.datetime(1990, 1, 1, 8, 0) #datetime.datetime.timedelta用於計算兩個日期之間的差值
if 和 else選擇結構
學習的碎碎念:
>>> time1 = datetime.now() >>> time2 = datetime(1990,1, 1) >>> print(time1-time2) 11034 days, 22:12:23.562459 >>> type(time) <class 'datetime.timedelta'> >>> type(now) <class 'datetime.datetime'> >>> print(time1-time2).days 11034 days, 22:12:23.562459 Traceback (most recent call last): File "<pyshell#20>", line 1, in <module> print(time1-time2).days AttributeError: 'NoneType' object has no attribute 'days'
print(time1-time2).days不行[因為這個格式本來就有問題],但是print((time1-time2).days)可以啊!
所以不用datetime.strptime以字符串的形式導入日期,用datetime.datetime定義一個日期也能做。
但是計算日期差還是要用到timedelta(不過為什么不引用這個庫就能計算?這個我還不懂)。