Return boolean to indicate whether date is invalid, None if valid, False if not a date

    >>> import datetime
    >>> is_invalid_date(datetime.datetime(1970, 1, 1, 0, 0, 1))
    >>> is_invalid_date(datetime.datetime(1970, 1, 1))
    >>> is_invalid_date(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999))
    True
    >>> is_invalid_date(datetime.date(2100, 1, 1))
    True
    >>> is_invalid_date(datetime.datetime(2099, 12, 31, 23, 59, 59))
    >>> [is_invalid_date(x) for x in (None, 0, 1.0, '2000-01-01')]
    [False, False, False, False]

def is_invalid_date(d):
    """Return boolean to indicate whether date is invalid, None if valid, False if not a date

    >>> import datetime
    >>> is_invalid_date(datetime.datetime(1970, 1, 1, 0, 0, 1))
    >>> is_invalid_date(datetime.datetime(1970, 1, 1))
    >>> is_invalid_date(datetime.datetime(1969, 12, 31, 23, 59, 59, 999999))
    True
    >>> is_invalid_date(datetime.date(2100, 1, 1))
    True
    >>> is_invalid_date(datetime.datetime(2099, 12, 31, 23, 59, 59))
    >>> [is_invalid_date(x) for x in (None, 0, 1.0, '2000-01-01')]
    [False, False, False, False]
    """
    if not isinstance(d, DATE_TYPES):
        return False
    if d.year < 1970 or d.year >= 2100:
        return True