The basic method
The straightforward version of the calculation is: subtract the birth year from the current year, then check whether the current date has passed the birthday yet this year — if not, subtract one more year. That second step is the part people most often skip, and it's exactly where manual age calculations go wrong: someone born on November 20 calculated in October of the current year needs that extra year subtracted, since their birthday hasn't occurred yet this calendar year.
Getting years, months, and days exactly right
A full breakdown — not just years, but years, months, and days — requires comparing the day-of-month and month values between the birth date and the target date, borrowing from the next unit up when a component goes negative, much like manual subtraction with regrouping. If the day component goes negative, borrow a month (using the actual number of days in the previous calendar month, not a flat 30), and if the month component then goes negative, borrow a year. Doing this correctly by hand, across arbitrary dates and leap years, is fiddly enough that it's a common source of small, easy-to-miss errors — which is exactly the kind of calculation that benefits from a tool doing the arithmetic instead of counting on fingers or a mental estimate.
Calculate an exact age
Why age calculations sometimes need to be precise
Plenty of everyday uses only need a rough age, but some genuinely require precision: eligibility cutoffs for school enrollment, sports leagues, or age-restricted services often specify an exact date rather than just a birth year, and being off by even a day around a cutoff date can matter. Legal and medical contexts sometimes ask for an exact age in days or months rather than a rounded year figure, and calculating someone's age as of a specific past or future date — not just today — is a common need that a simple "how old am I" mental calculation doesn't handle at all.
Age as of a specific date, not just today
It's worth knowing that "age" doesn't have to mean "age as of today" — calculating someone's exact age as of a past date (how old were they when an event happened) or a future date (how old will they be on a specific future day) uses exactly the same year/month/day-borrowing method, just with a different target date substituted for today. This comes up more often than expected: verifying someone met an age requirement on a specific historical date, or planning how old someone will be for a future milestone.