Eu quero ser capaz de capturar fatos como Bob was born in 2000
e Bill's birthday is May 7th
.
Nos dois exemplos, conhecemos apenas parte da data de nascimento da pessoa. Em um caso, sabemos apenas o ano; no outro caso, sabemos o mês e o dia, mas não o ano.
Como capturo essas informações?
Alguns exemplos de como isso pode funcionar:
Imagine uma biblioteca como datetime que permita que None nos campos represente incógnitas. Eu posso ter um código como o seguinte:
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
Este é apenas um exemplo de como ele pode se comportar. Eu não necessariamente quero esse comportamento preciso.