☆ Yσɠƚԋσʂ ☆@lemmygrad.mltoProgrammer Humor@lemmy.ml•If you run this JavaScript function on the 31st of a month, the result will be a month off. The best part is that this is the intended behvaior. JavaScript is a cursed language.
107·
1 year agoThis 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?
That’s precisely what I’d expect as well, and what APIs in languages like Java do.