I needed a simple thing the other day: “What’s the exact age between two dates?” Not just years. I wanted the full breakdown—years, months, days. Should be easy, right? Yeah… not really. The “simple” approach (that breaks quickly) My first instinct was: const now = new Date(); const birth = new Date("1990-01-01"); const years = now.getFullYear() - birth.getFullYear(); Done? Not even close. This ignores: Whether the birthday has happened yet this year Month differences Day differences Leap years So you end up with something that’s almost right… which is the worst kind of wrong. The real problem: dates are messy Once you try to do it properly, you run into edge cases: Months have different lengths February exists (and sometimes has 29 days) You have to “borrow” days from previous months Timezones can mess with exact values At that point it stops being a quick calculation and turns into… date logic hell.…