strptime does not resolve a 0000 year, we must handle this.

def zero_year_special_case(from_date, to_date, start, end):
    """strptime does not resolve a 0000 year, we must handle this."""

    if start == 'pos' and end == 'pos':
        # always interval from earlier to later
        if from_date.startswith('0000') and not to_date.startswith('0000'):
            return True
        # always interval from later to earlier
        if not from_date.startswith('0000') and to_date.startswith('0000'):
            return False
        # an interval from 0000-MM-DD/0000-MM-DD ??? PARSE !!!
        if from_date.startswith('0000') and to_date.startswith('0000'):
            # fill from date assuming first subsequent date object if missing
            # missing m+d, assume jan 1
            if len(from_date) == 4:
                fm, fd = 1, 1
            # missing d, assume the 1st
            elif len(from_date) == 7:
                fm, fd = int(from_date[5:7]), 1
            # not missing any date objects
            elif len(from_date) == 10:
                fm, fd = int(from_date[5:7]), int(from_date[8:10])
            # fill to date assuming first subsequent date object if missing
            # missing m+d, assume jan 1
            if len(to_date) == 4:
                tm, td = 1, 1
            # missing d, assume the 1st
            elif len(to_date) == 7:
                tm, td = int(to_date[5:7]), 1
            # not missing any date objects
            elif len(to_date) == 10:
                tm, td = int(to_date[5:7]), int(to_date[8:10])
            # equality check
            if from_date == to_date:
                return True
            # compare the dates
            if fm <= tm:
                if fd <= td:
                    return True
                else:
                    return False
            else:
                return False
    # these cases are always one way or the other
    # "-0000" is an invalid edtf
    elif start == 'neg' and end == 'neg':
        return False
    # False unless start is not "0000"
    elif start == 'neg' and end == 'pos':
        if from_date.startswith("0000"):
            return False
        else:
            return True