出品: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...