Date() doesn't really work like that. It doesn't do ranges. A date is a point in time, which gets expressed as an integer. I am doing some things such as if it's just a year, see if it's the same year or exclude the comparison. Similarly I can check if a shorter date contains the elements of a larger date by comparing their string equivalent. Ultimately, I'd like to build out a system of ranges that can compare to other ranges. Then I could also deal with before, after, and between. But that's a big todo.
Currently for example when comparing if siblings are too close, I ignore the comparison if one of the siblings has just a year, because if if they have the same year, I'd still have to compare what part of the year.
Now that I think about it more, I'm going to leave it as the beginning of the month, day as I can think of a couple things it could break.