中国有句俗语叫“三天打鱼两天晒网”。某人从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(不过为什么不引用这个库就能计算?这个我还不懂)。