What would be the best way to see if the current time lies between say 10:30 AM and 4:30 PM.
I could think of the following, not sure how correct:
from datetime import datetime
nw = datetime.now()
hrs = nw.hour;mins = nw.minute;secs = nw.second;
zero = timedelta(seconds = secs+mins*60+hrs*3600)
st = nw - zero # this take me to 0 hours.
time1 = st + timedelta(seconds=10*3600+30*60) # this gives 10:30 AM
time2 = st + timedelta(seconds=16*3600+30*60) # this gives 4:30 PM
if nw>= time1 or nw <= time2:
print "yes, within the interval"
Please let me know if this the correct approach, can something better be written?
My original answer focused very specifically on the question as posed and didn’t accommodate time ranges that span midnight. As this is still the accepted answer 6 years later, I’ve incorporated @rouble’s answer below that expanded on mine to support midnight.
I still stick to my original comment below that most applications of this logic would probably be better suited with
datetimeobjects where crossing midnight is reflected as a date change anyway.