This is literally how every sane API works in languages built by adults. For example, here’s what happens in Java:
java.time.LocalDate.of(2023, 3, 31)
> #object[java.time.LocalDate 0x2bc77260 "2023-03-31"]
java.time.LocalDate.of(2023, 3, 31).minusMonths(1)
> #object[java.time.LocalDate 0xac0dc15 "2023-02-28"]
java.time.LocalDate.of(2023, 3, 31).minusMonths(2)
> #object[java.time.LocalDate 0x44b9305f "2023-01-31"]
I have no idea where people get this notion that a month isn’t a defined size. Do people just not understand the concept of a month?
The amount of people arguing that this is a fine behavior in this thread makes the whole thing even funnier.
lol there is some truth to that :)
At this point, I really think that the only way to have real privacy is to not use a computing device. It’s back to pen and paper and in person meetings.
The thing to remember is that cryptography is very tricky business, and even when an algorithm is sound on paper that does not guarantee that it’s implemented in a secure way. A famous example is when NSA “helped” develop the Diffie-Hellman cryptographic key exchange standard and introduced a vulnerability that nobody noticed for a very long time.
Any standard that’s been developed in conjunction with US agencies should be considered compromised in my opinion.
That’s precisely what I’d expect as well, and what APIs in languages like Java do.