Age in years, months and days, counted the way a person counts: whole months are advanced from the date of birth for as long as that stays on or before the second date, and whatever is left over is the days.
That matters at month ends. One month after 31 January is 28 February, so 1 March is one month and one day later — not one month and two. Subtracting the numbers and borrowing once gives a negative day count and a wrong answer.
Their birthday is counted as 28 February. Rolling it forward to 1 March would mean a leap-day baby reaches eighteen a day later than everyone born the same week, which is not how age of majority is read.
So you can work out age at any date, not just today — how old someone was on a particular day, or will be at a future one. It defaults to today for the common case.
Because months are different lengths. One month after 31 January is 28 February, so 1 March is "1 month and 1 day" later, not "1 month and 2 days". The calculation advances whole months first and counts the leftover days, which is how people count.
Every date here is compared as text in YYYY-MM-DD form and every step is integer arithmetic on the parts. No timezone can move a birthday by a day.
Calendar arithmetic only. Nothing you type here is sent to our servers — the calculation runs entirely in your browser.