亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何以 HHMM 形式將時間作為用戶的輸入,然后在當時運行一個函數

如何以 HHMM 形式將時間作為用戶的輸入,然后在當時運行一個函數

斯蒂芬大帝 2023-07-18 16:48:53
我正在編寫一個代碼,其中將使用循環多次以 HHMM 的形式詢問用戶時間,然后將這次時間附加到列表中?,F在我希望在用戶提供的列表中的不同時間執行一個函數。
查看完整描述

1 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

您可以使用它datetime來執行必要的計算。


在此示例中,使用解析目標時間strptime但未提供日期,因此時間部分正確但日期部分錯誤。然后,前三個字段(年、月、日)將替換為今天的日期,以生成正確表示目標時間的日期時間對象。然后可以減去當前時間以給出一個timedelta對象,該對象表示任務可以運行之前需要等待的時間量。


import time

import datetime



def hello():

    print("hello")



def run_at_times(func, times):


    today = datetime.date.today()

    

    for hhmm in sorted(times):

        dt = datetime.datetime.strptime(hhmm, "%H%M")

        when = datetime.datetime(*today.timetuple()[:3],

                                 *dt.timetuple()[3:6])


        wait_time = (when - datetime.datetime.now()).total_seconds()


        if wait_time < 0:

            print(f'Time {when} has already passed')

        else:

            print(f'Waiting {wait_time} seconds until {when}')

            time.sleep(wait_time)

            func()



run_at_times(hello, ["1041", "1203", "1420"])


查看完整回答
反對 回復 2023-07-18
  • 1 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號