For events in the last hour, the following expression should evaluate to True:
(datetime.now() - timedelta(hours=1)) <= event_datetime
date.today().replace(month=5, day=1) <= event_datetime.date() <= date.today().replace(month=5, day=31)
[1]: https://docs.python.org/3/library/datetime.html#timedelta-ob... [2]: http://arrow.readthedocs.io/en/latest/
event_datetime in daterange(timedelta(hours=1), before=datetime.now())
For events in the last hour, the following expression should evaluate to True:
Checking whether event_datetime is within May of the current year is a bit more involved, but you may not need to convert everything to a date (would have to check in an interpreter): The point is that the language already has good support for sensible time operations, but it's parsing is weak. And there's Arrow for that[2]![1]: https://docs.python.org/3/library/datetime.html#timedelta-ob... [2]: http://arrow.readthedocs.io/en/latest/