又又又到了周末小编更文的日子了!!!!
在本周的时候,有一位可爱的小伙伴私信问小编,如何用python来更好的计算时间差,从而打造属于自己倒计时or纪念日呢?
恰逢最近又有高三的学弟学妹咨询我有关计算机及大数据专业的事情,让小编想起了多年前奋斗的那个夏天,那个暗无天日却又满怀着希望的夏天,那段掐着手指数一天又一天的时期,那看着斑驳的墙上,倒计时牌从一百天变成一天的时光。。。。
于是,今天小编就来隆重介绍如何用python打造一款高考倒计时日历,当然了,小伙伴们学会这招之后也可以打造属于自己放假倒计时,期末考试倒计时等等等!
首先,要实现对时间求差,就得引用python的两个第三方库,time库和dateutil库,有关于time库的相关用法在小编的上一篇文章中有提到哦,不记得的小伙伴们赶紧去快速复习一遍吧。
陆离哈哈哈:用python来打开你与女神(经)的话题匣子(time库的使用)zhuanlan.zhihu.com今天小编就要介绍一个最最最重要的库——dateutil!!!
为什么要介绍它呢?!
因为它优秀啊,不是一般的优秀,简直是个秀儿,蒂花之秀,造化钟神秀。
安装方法如下:
在命令行环境下,输入:pip install python-dateutil
主要使用的就只有一个函数(想了解更多函数的小伙伴们可自行百度哦):parser
这个函数有啥作用呢?
其实没啥作用,就是将你输入的字符串转换为时间格式。
哇,惊呆了,彻底被这个函数震惊了,可能读者一时半会无法理解这个函数的强大,但不要紧,请记住他,点个关注,加个收藏,当哪天你需要用到时,你一定会被它惊艳到的,相信我!
下面来简单看一下
>>from dateutil.parser import parse
>>parse("Wed, Nov 12")
datetime.datetime(2013, 11, 12, 0, 0)
>>parse("2013-08-20")
datetime.datetime(2013, 8, 20, 0, 0)
>>parse("20130820")
datetime.datetime(2013, 8, 20, 0, 0)
>>parse("2013,08,20")
datetime.datetime(2013, 8, 20, 0, 0)
>>parse("this is the wonderful moment 12:00:00,I feel good",fuzzy=True)#fuzzy开启模糊匹配,过滤掉无法识别的时间日期字符
datetime.datetime(2013, 8, 20, 12, 0)
当然了,为了更好的实现输出效果,怎么能少了turtle库呢,所以,在本期的文章中,依旧通过turtle库来进行图形界面可视化。
话不多说,让我们一起来看看代码吧!
from dateutil.parser import parse
import turtle
import time
def drawgap():
turtle.penup()
turtle.fd(5)
def drawline(draw):
drawgap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(80)
turtle.right(90)
def drawdigit(digit):
drawline(True) if digit in [2,3,4,5,6,8,9] else drawline (False)
drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline (False)
drawline(True) if digit in [0,2,3,5,6,8,9] else drawline (False)
drawline(True) if digit in [0,2,6,8] else drawline (False)
turtle.left(90)
drawline(True) if digit in [0,4,5,6,8,9] else drawline (False)
drawline(True) if digit in [0,2,3,5,6,7,8,9] else drawline (False)
drawline(True) if digit in [0,1,2,3,4,7,8,9] else drawline (False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawdate(date):
turtle.pencolor("red")
for i in date:
drawdigit(eval(i))
def main():
turtle.setup(1600,800,0,0)
turtle.pencolor('red')
turtle.penup()
turtle.goto(-400,200)
turtle.down()
turtle.write("距离高考还有",font=("snap itc",50,"normal"))
turtle.penup()
turtle.goto(0,0)
turtle.fd(-300)
turtle.down()
turtle.pensize(15)
t1=time.strftime("%Y-%m-%d",time.gmtime())
a = parse('t1')
b = parse('2019-6-7')
#这里输入高考日期,也可以输入其他的日期
(a-b).days
(a-b).seconds
t=(a-b).total_seconds()
t2=abs(int((t)/(24*3600))+21)
drawdate(str(t2))
turtle.penup()
turtle.goto(200,-200)
turtle.down()
turtle.write("天",font=("snap itc",50,"normal"))
turtle.hideturtle()
turtle.done()
main()
效果图:
最后,在今天距离高考还有77天的时候,预祝各位2019届考生金榜题名,前程似锦。
哭了,谨以此篇怀念那些年奋斗的日子。当年少年一起在五楼奋斗的日子,不知道你们还记不记得。。。。。。
喜欢的小哥哥小姐姐记得关注我哦!
定期更新有关python的骚项目,嘻嘻!