2017-03-08 29 views
2

我正在編寫代碼以獲取日期(日月和年)的輸入以及他們要重複執行任務的次數) 我想使用for循環使用時間作爲邊界。 代碼:TypeError:'>'在'int'和'str'實例之間不受支持

def addtimeslot(): 
    times = int(times_repeated.get()) 
    print(times_repeated.get()) 
    variable_end.get() 
    day = variable_day.get() 
    month = variable_month.get() 
    year = variable_year.get() 
    fulldateadd = datetime.date(year, month, day) 
    name1 = str(name.get()) 
    minute = int('00') 
    second = int('00') 
    hour1 = variable_st.get() 
    starttimehour = str(datetime.time(hour1,minute,second)) 
    hour2 = variable_end.get() 
    endtimehour = str(datetime.time(hour2,minute,second)) 
    for i in range(0 , times): 
     fulldateadd = datetime.date(year, month, day) 
     cursor.execute('''INSERT INTO dates (Date, Name, Start, End) VALUES(?,?,?,?);''', (fulldateadd , name1, starttimehour, endtimehour)) 
     day = int(day) + 7 
     if day > '31': 
      month = int(month) + 1 

我得到這個錯誤:

TypeError: '>' not supported between instances of 'int' and 'str' 
+2

你已經用'day = int(day)+ 7'創建了''''int',所以測試應該是'if day> 31:',即比較一個int'31'而不是一個字符串''31''。 – AChampion

+4

將來請發佈完整的堆棧跟蹤,以便人們不必猜測哪條線路導致錯誤。 – glibdud

+0

這是修復它,謝謝! – simons21

回答

3

由於問題不應該在評論中回答我將提供@AChampion的解決意見:

您已經使dayintday = int(day) + 7所以測試應該是如果day > 31:,即比較一個int 31而不是一個字符串'31'

相關問題