倒計時幾秒 Python微專案分享之事件倒計時

2021-10-14 17:33:42 字數 3784 閱讀 9145

出品:jiawulab(id:jiawulab)

微專案系列是jiawulab原創欄目,每期選取乙個自創專案或發現有趣的專案,進行**、邏輯分析,達到python學習目的。
上期分享的微專案——雙十一優惠計算器,您看過嗎?如果感興趣,傳送門:

jiawuzhang:python微專案分享之雙十一優惠計算器​zhuanlan.zhihu.com

「11月11日0點0分0秒!」

你是不是也在等著這個時間?

看看電視,玩玩手機,刷刷購物車,只為等著這個時間到來。

我老婆也是這樣,為了0點的到來,能更清醒的付款,她提前在5點補了兩小時的睡眠。

現在的狀況就是,開啟電視,放著奇葩說當背景**(平日可是很認真的**,哎。。。)

然後刷著手機,對著手抄版的購物車商品,做著最後的檢閱工作

我覺得平時工作狀態,肯定都沒有這陣勢。

於是就想到之前做過的乙個事件倒計時功能

此時此刻,可以改為另乙個名字——雙十一倒計時

我們來分析一下,當拿到這個需求後,應該怎麼開始呢。

1、需要獲得事件名稱和目標時間,所以想到了「input()」,我們連著兩期都會經常用到,是乙個很熟悉的方法

2、計算時間差,這裡就需要先獲得現在的時間,需要用到「datetime」模組,可獲得日期的功能,再計算現在時間到目標時間的差

這裡有個坑需要踩,就是目標時間是輸入進來的,屬於「字串」型別,但「datetime」獲得現在時間型別不同

所以需要進行型別轉換,這個我們後面碼**中會演示。

3、有了時間差,就可以做倒計時,這裡需要用到「print」的一種屬性,可以達到這個要求

專案過程分析後,是不是覺得很簡單,但是如果真的動手來寫時,就會發現,有些點需要想的更多點

比如目標時間輸入「2019.11.11」、「2019/11/11」、「2019-11-11」,都應該可以,如果只支援一種,程式限制太大

比如時間差,我們希望能分出多少天、多少小時、多少分鐘、多少秒,這樣就需要將時間差分解

這兩個點,是不是覺得沒有想的那麼容易了,專案很簡單,但是要想寫好,需要多想點

我們來分解成,一步步的過程:

1、獲得事件名稱和目標時間

event = input('請輸入目標事件名字:')

print(f'目標事件為:')

print(f'目標時間為:')

2、時間格式轉化

# 匯入區

import datetime

# 獲得現在時間

today = datetime.datetime.now()

# 目標時間格式

if '.' in endtime:

form = '%y.%m.%d'

elif '-' in endtime:

form = '%y-%m-%d'

elif '/' in endtime:

form = '%y/%m/%d'

# 目標時間型別轉化

endate = datetime.datetime.strptime(endtime, form)

3、倒計時

# 時間差

day = (endate-today).days # 得到還有幾天

second = (endate-today).seconds # 得到還有幾秒

sec = int(second%60) # 根據秒數得到還有幾秒

minute = int(second/60%60) # 根據秒得到分鐘數

hour = int(second/60/60) # 根據秒數得到小時

if hour > 24:

hour = hour-24 # 如果超過24小時,就要算超過1天,所以要減去24

timestr = f"離還有 天 小時 分鐘 秒"

print('r', timestr, end='')

好了,分解結束,我將完整**貼出來,並做專案結果的演示。

廢話不多說,直接上**:

# coding=utf-8

# 匯入區

import datetime

def count(event, endtime):

# 目標時間格式

if '.' in endtime:

form = '%y.%m.%d'

elif '-' in endtime:

form = '%y-%m-%d'

elif '/' in endtime:

form = '%y/%m/%d'

# 目標時間型別轉化

endate = datetime.datetime.strptime(endtime, form)

while true:

# 獲得現在時間

today = datetime.datetime.now()

# 時間差

day = (endate-today).days # 得到還有幾天

second = (endate-today).seconds # 得到還有幾秒

sec = int(second % 60) # 根據秒數得到還有幾秒

minute = int(second/60 % 60) # 根據秒得到分鐘數

hour = int(second/60/60) # 根據秒數得到小時

if hour > 24:

hour = hour-24 # 如果超過24小時,就要算超過1天,所以要減去24

timestr = f"距離()還有 天 小時 分鐘 秒"

print('r', timestr, end='')

def main():

print('歡迎您使用事情倒計時功能!n')

event = input('請輸入目標事件名字:')

print(f'n您已輸入:n目標事件為:n目標時間為:n')

print('倒計時展示:')

count(event, endtime)

if __name__ == '__main__':

main()

演示效果如下:

乙個簡單的事件倒計時功能就完成了,演示效果還不錯。

當然,你還可以按自己的需求,豐富更多功能。

比如,倒計時結束後,可以設定電腦發出聲音提醒等。

目前專案做最後的除錯,等上線了,會與大家分享的。

好了,離雙十一狂歡夜只剩乙個多小時,大家準備準備,拼手速的時候到了。

本次的微專案——事件倒計時——分享結束。如果您喜歡這期文章,請麻煩點讚,支援一下。

python倒計時屏保

import turtle,time import winsound import math defdrawgap turtle.penup turtle.fd 5 defdrawline draw drawgap turtle.pendown if draw else turtle.penup t...

微信小程式 倒計時

需要乙個目標日期,初始化時,先得出到當前時間還有剩餘多少秒 1.將秒數換成格式化輸出為xx天xx小時xx分鐘xx秒 xx 2.提供乙個時鐘,每10ms執行一次,渲染時鐘,再總ms數自減10 3.剩餘的秒次為零時,return,給出tips提示說,已經截止 定義乙個總毫秒數,以十小時為例。var to...

Python之倒計時篇

弄了乙個倒計時程式 支援一直倒計時至0 但是不完美。期待與廣大的高手交流。廢話不多說,直接上 coding utf 8 開發團隊 心心相印 開發人員 機械人小白 開發時間 2020 5 30 16 16 檔名稱 ac 3 4.py 開發工具 pycharm 模擬 商品銷售倒計時提示 import d...