python datetime时间差_用python打造一款属于自己的倒计时(time库和dateutil库)

又又又到了周末小编更文的日子了!!!!

v2-b7cba6aaf1f726572a98fa1412d3ad8d_b.jpg

在本周的时候,有一位可爱的小伙伴私信问小编,如何用python来更好的计算时间差,从而打造属于自己倒计时or纪念日呢?

恰逢最近又有高三的学弟学妹咨询我有关计算机及大数据专业的事情,让小编想起了多年前奋斗的那个夏天,那个暗无天日却又满怀着希望的夏天,那段掐着手指数一天又一天的时期,那看着斑驳的墙上,倒计时牌从一百天变成一天的时光。。。。

于是,今天小编就来隆重介绍如何用python打造一款高考倒计时日历,当然了,小伙伴们学会这招之后也可以打造属于自己放假倒计时,期末考试倒计时等等等!

v2-4d3e32b8468f6f384bf6094545aa3925_b.jpg

首先,要实现对时间求差,就得引用python的两个第三方库,time库和dateutil库,有关于time库的相关用法在小编的上一篇文章中有提到哦,不记得的小伙伴们赶紧去快速复习一遍吧。

陆离哈哈哈:用python来打开你与女神(经)的话题匣子(time库的使用)​zhuanlan.zhihu.com

今天小编就要介绍一个最最最重要的库——dateutil!!!

为什么要介绍它呢?!

因为它优秀啊,不是一般的优秀,简直是个秀儿,蒂花之秀,造化钟神秀。

v2-b6f54a2ded441daeadeae38388fc2067_b.jpg

安装方法如下:

在命令行环境下,输入: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库来进行图形界面可视化。

话不多说,让我们一起来看看代码吧!

v2-26001c5d6c846f2ac4ec6546d501bf17_b.jpg
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()
            

效果图:

v2-5c6f4f832da2c987dba1555e72686564_b.jpg

最后,在今天距离高考还有77天的时候,预祝各位2019届考生金榜题名,前程似锦。

v2-13b1aa5a1baf2769ae1995a59f690932_b.jpg

哭了,谨以此篇怀念那些年奋斗的日子。当年少年一起在五楼奋斗的日子,不知道你们还记不记得。。。。。。

喜欢的小哥哥小姐姐记得关注我哦!

v2-b307403d39a77fe1cf08f5a4ef7d634f_b.jpg

定期更新有关python的骚项目,嘻嘻!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值