簡體   English   中英

Python TypeError:比較時間需要整數

[英]Python TypeError: an integer is required comparing times

有很多與我的問題相似的話題,但是我找不到正確的答案。

我的目標是創建一個if語句,將現在的時間與時間表(由開始時間和結束時間定義的時間表)進行比較。

如果我為時間表添加了特定的數字,則可以正常工作,但是我需要將變量傳遞到語句中,以確保時間表不會是靜態的。

到目前為止,我有:

import time as sleeptime
from datetime import datetime, time
schedule_list = []
def scheduler():
    conn = pymysql.connect(host='myhost', db='test', user='1234', passwd='123456', autocommit = True)
    cur = conn.cursor()
    query = ("SELECT startTimehour, startTimeminute, endTimehour, endTimeminute FROM schedule WHERE hwID = %s")
    print query
    cur.execute(query, (number))
    for row in cur:
        print row
        door_schedule_list.append(row)
    cur.close()
    conn.close()
    if len(door_schedule_list) > 0:
        start_time_hour = door_schedule_list[0][0]
        start_time_minute = door_schedule_list[0][1]
        end_time_hour = door_schedule_list[0][2]
        end_time_minute = door_schedule_list[0][3]
        print start_time_hour
        print start_time_minute
        print end_time_hour
        print end_time_minute
    while True:
        now = datetime.now()
        #print (door_schedule_list)
        #starttime = time(startTimehour, startTimeminute)
        if time("%d","%d") <= now.time() <= time("%d","%d") % (start_time_hour,  start_time_minute, end_time_hour, end_time_minute): 
            print "Schedule active"
            sleeptime.sleep(20)
        else:
            print "Schedule Inactive"
            sleeptime.sleep(20) 

如果有更簡單的方法可以實現我的目標,請告訴我。 否則,我該如何解決錯誤。

當您這樣做時:

if time("%d","%d") <= now.time() <= time("%d","%d") % (start_time_hour,  start_time_minute, end_time_hour, end_time_minute)

%運算符未按照您認為的應做。

這是不一樣的:

time("%d" % 5, "%d" % 4)

time("%d", "%d") % (5, 4)

最后一行會報錯:必須an integer is required

您也可以:

hours = 5
min = 4
time(hours, min)

因此,您可以將行更改為:

if time(start_time_hour, start_time_minute) <= now.time() <= time(end_time_hour, end_time_minute)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM