How do you compare dates? If you use functions datetime, then this should already be considered by this material.
>>> datetime.datetime(2011, 2, 28)
datetime.datetime(2011, 2, 28, 0, 0)
>>> datetime.datetime(2011, 2, 29)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: day is out of range for month
>>> datetime.datetime(1600, 2, 29)
datetime.datetime(1600, 2, 29, 0, 0)
datetime.timedelta() used to represent the difference between two dates
>>> datetime.datetime(2011, 2, 28) + datetime.timedelta(days=10)
datetime.datetime(2011, 3, 10, 0, 0)
>>> datetime.datetime(1600, 2, 28) + datetime.timedelta(days=10)
datetime.datetime(1600, 3, 9, 0, 0)
>>> datetime.datetime(2011, 2, 28) - datetime.datetime(2011, 4, 10)
datetime.timedelta(-41)
I don't know how this fits into your code, but it may be an option; -)