Chcę być w stanie uchwycić fakty takie jak Bob was born in 2000i Bill's birthday is May 7th.
W obu przykładach znamy tylko część daty urodzenia osoby. W jednym przypadku znamy tylko rok; w innym przypadku znamy miesiąc i dzień, ale nie rok.
Jak przechwycić te informacje?
Kilka przykładów tego, jak to może działać:
Wyobraź sobie bibliotekę podobną do datetime, która pozwoliła None w polach reprezentować nieznane. Mogę mieć kod podobny do następującego:
date_a = date(2000, 5, None)
date_b = date(2000, 6, None)
difference = date_b - date_a
assert difference.min.days == 1
assert difference.max.days == 60 # Or something close to 60.
assert equal(date_a, date_b) == False
date_c = date(2000, 5, None)
assert equal(date_a, date_c) == Maybe
To tylko przykład tego, jak może się zachowywać. Niekoniecznie chcę tego precyzyjnego zachowania.