The problem is that I want her to ignore the date and only the time factor. Here is what I have:
import time from time import mktime from datetime import datetime def getTimeCat(Datetime): # extract time categories str_time = datetime.strptime(Datetime, "%m/%j/%y %H:%M") ts = datetime.fromtimestamp(mktime(str_time)) # --> Morning = 0400-1000 mornStart = datetime.time(4, 0, 1) mornEnd = datetime.time(10, 0, 0) # --> Midday = 1000-1600 midStart = datetime.time(10, 0, 1) midEnd = datetime.time(16, 0, 0) # --> Evening = 1600-2200 eveStart = datetime.time(16, 0, 1) eveEnd = datetime.time(22, 0, 0) # --> Late Night = 2200-0400 lateStart = datetime.time(22, 0, 1) lateEnd = datetime.time(4, 0, 0) if time_in_range(mornStart, mornEnd, ts): timecat = 0 #morning elif time_in_range(midStart, midEnd, ts): timecat = 1 #midday elif time_in_range(eveStart, eveEnd, ts): timecat = 2 #evening elif time_in_range(lateStart, lateEnd, ts): timecat = 3 #late night return timecat
As is, I get this error:
TypeError: argument must be 9-item sequence, not datetime.datetime
When I change the corresponding line to:
str_time = time.strptime(Datetime, "%m/%j/%y %H:%M")
I get this error:
TypeError: descriptor 'time' requires a 'datetime.datetime' object but received a 'int'
I know that I work with two different libraries or something else, but I'm not sure how to convert between them or to accomplish what I want to do, just using one. I just want it to ignore the date and only check if the time is within the specified limits. Python 2.6 is MUST due to the library that I use elsewhere in the code.