Please reconsider the Boolean evaluation of midnight
I've never seen a good argument for anything beside "false" to be considered false.  Likewise for "true".  Keystrokes are not a commodity for most coders, and compilers are not dumb; just be explicit and write "!= 0" or whatever.(And 0 == False, "" != False, but both 0 and "" are considered false?  C'mon Python, that's borderline JavaScript territory.)