第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

檢查列表中的任何時(shí)間是否在兩個(gè)時(shí)間戳之間

檢查列表中的任何時(shí)間是否在兩個(gè)時(shí)間戳之間

牛魔王的故事 2021-09-02 15:01:20
我正在用 Python 實(shí)現(xiàn)一些計(jì)劃任務(wù)。主程序 24/7 全天候運(yùn)行,它以類似于 cron 的方式運(yùn)行單個(gè)任務(wù)。我需要確定是否應(yīng)該多次再次運(yùn)行任務(wù)。在這種情況下,我將獲得上次運(yùn)行任務(wù)的時(shí)間、當(dāng)前時(shí)間(均作為 Unix 時(shí)間戳,通過獲取datetime.datetime.utcnow().timestamp()并輕松轉(zhuǎn)換為datetime.datetime對(duì)象)以及計(jì)劃時(shí)間(例如,每小時(shí)每 15 分鐘一次,例如0:15,1:15, ..., 23:15)。我想確定是否有任何預(yù)定時(shí)間在上次運(yùn)行時(shí)間和當(dāng)前時(shí)間之間,可能是布爾值。保證安排的時(shí)間總是“時(shí)間”(例如“2:00”)并且不涉及“日期”(例如任何一個(gè)月的第一天或任何星期一)。示例數(shù)據(jù):import datetimescheduled = [datetime.time(h, m) for h, m in [(0, 15), (6, 15), (12, 15), (18, 15)]]previous = datetime.datetime(2018, 11, 30, 5)truthy = datetime.datetime(2018, 11, 30, 7)falsey = datetime.datetime(2018, 11, 30, 6)# some_method() is what I wantassert some_method(scheduled, previous, falsey) is Falseassert some_method(scheduled, previous, truthy) is True這里有一些我也想介紹的特殊情況scheduled = [datetime.time(1, 0)]  # 1:00 AMprevious = datetime.datetime(2018, 11, 30, 23)truthy = datetime.datetime(2018, 12, 1, 2, 0)falsey = datetime.datetime(2018, 12, 1, 0, 30)assert some_method(scheduled, previous, falsey) is Falseassert some_method(scheduled, previous, truthy) is True上面的例子應(yīng)該是True因?yàn)轭A(yù)定時(shí)間“1 AM”介于“11月30日晚上11點(diǎn)”和“12月1日凌晨2點(diǎn)”之間。我無法直接比較時(shí)間,因?yàn)椤傲璩?1 點(diǎn)”不在同一天的“凌晨 2 點(diǎn)”和“晚上 11 點(diǎn)”之間,而是在不同日期的兩個(gè)時(shí)間之間。
查看完整描述

2 回答

?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

如何使用timedelta和比較timetuples?


def some_method(scheduled, prev, datetime_to_check):

    yesterday = datetime_to_check - datetime.timedelta(days=1)

    schedule = [(*yesterday.timetuple()[:3], s.hour, s.minute) for s in scheduled]

    schedule.extend((*datetime_to_check.timetuple()[:3], s.hour, s.minute) for s in scheduled)

    prev_tup = prev.timetuple()

    check_tup = datetime_to_check.timetuple()

    for scheduled_time in schedule:

        if prev_tup < scheduled_time < check_tup:

            return True

    return False


查看完整回答
反對(duì) 回復(fù) 2021-09-02
  • 2 回答
  • 0 關(guān)注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)