Math
How Age Is Calculated: Completed Years, Month-Ends, 29 February
Say Meera was born on 15 August 2000, and the form she is filling says "age as on 14 August 2026". She types 26, because that is what everyone calls her. The correct answer is 25. She turns 26 the next day, and a form that asks for completed years on a date counts only the birthdays that have already happened by then. One day on the calendar, one year on the form.
This post is about that gap, and the smaller ones around it: how months and days are borrowed, what 29 February does to a birthday, and why dividing days by 365 is not a safe shortcut. The numbers below were computed with Python's date arithmetic.
Completed years and running years are different questions
Ordinary speech uses two ideas of age and mixes them up. Completed years is the number of birthdays you have had. Running years is the year of life you are in, which is always one more. Meera on 14 August 2026 has completed 25 years and is running her 26th. Forms generally ask for the first, but some people fill in the second from habit, and the mismatch shows up when the form is checked against a certificate.
The completed-years rule is easy to state. Take the year of the cut-off date, subtract the year of birth, then subtract one more if the birthday in that year has not arrived yet. Meera: 2026 − 2000 = 26, her birthday on 15 August has not arrived by 14 August, so 25.
Years, months and days: where the borrowing comes in
If you want the full figure such as 26 years, 1 month and 23 days, you subtract the way you did in school, from the right: days first, then months, then years. When the day of the later date is smaller than the day of the birth date, you borrow a month and add days to make up for it. Which month's length you add is the part people forget.
Take someone born on 15 January 2000, and the date 10 March 2026.
- Years: 2026 − 2000 = 26. Months: 3 − 1 = 2. Days: 10 − 15 = −5.
- Days are negative, so borrow one month: months become 1, and we add the length of February 2026, which is 28 days. Days: −5 + 28 = 23.
- Result: 26 years, 1 month, 23 days.
Now try 10 March 2028. February 2028 has 29 days, so the same calculation gives −5 + 29 = 24 days. The answer comes out as 28 years, 1 month, 24 days. The extra day is not a mistake. It is the leap day, and it is why the day part of an age can differ by one between two people whose birthdays fall in different years but who are measured on the same day and month.
The month-end problem
Borrowing works cleanly until the birth day is 29, 30 or 31. Someone born on 31 August 2000 has no "31st" in February, April, June, September or November. So what is the age on 1 March 2026?
If you borrow February's 28 days: months 3 − 8 goes negative, so we borrow a year as well, and the days come out as 1 − 31 + 28 = −2. Still negative. A naive borrow fails here. Standard date libraries avoid the problem a different way. They add whole years and months to the birth date first, and if the result does not exist, they step back to the last real day of that month. For 31 August 2000, adding 25 years and 6 months lands on 31 February 2026, which becomes 28 February 2026. Then they count the leftover days. The results for three dates in a row:
| Date | Age of someone born 31 Aug 2000 |
|---|---|
| 28 February 2026 | 25 years, 6 months, 0 days |
| 1 March 2026 | 25 years, 6 months, 1 day |
| 31 March 2026 | 25 years, 7 months, 0 days |
That is a sensible answer, but it is one convention among several. If two calculators disagree on the days, check which month each one borrowed from. The disagreement is rarely in the years, which is the part forms use.
Born on 29 February
Take a baby born on 29 February 2004. When is the 18th birthday in 2022, a year with no 29 February? Two common conventions give two answers: 28 February 2022 (the last day of February) or 1 March 2022 (the first day after it). The Python library I used treats 28 February as the birthday. On 28 February 2022 it says 18 years exactly, and on 1 March 2022, 18 years and 1 day.
For the two days in question, the person is either 17 or 18 on 28 February, depending on the convention. I have not verified which one a particular exam body, employer or court uses, and I would not guess. If your cut-off falls on 28 February or 1 March of a non-leap year and you were born on 29 February, read the notification closely, and if it is silent, write to the organisation and keep the reply.
Why dividing days by 365 is a trap
A tempting shortcut: count the days between two dates and divide by 365, or 365.25 to cover leap years. Fine for a rough figure, but wrong on the exact boundary, which is where eligibility is decided.
Someone born on 2 August 2005 turns 21 on 2 August 2026. The number of days between the two dates is 7,670. Divide by 365.25 and you get 20.9993, which a floor operation turns into 20. The person is 21. The stretch contains five leap days, while 365.25 assumes 5.25 of them, so the quotient lands just under 21. 365.25 is only an average, and individual spans fall a little above or below it. Calendar arithmetic, which compares the month and day, never has this problem. Use the day-count only to estimate.
Why "as on a cut-off date" trips people up
Job and exam notifications usually state a date such as "age as on 1 January 2026" or "as on the last date of application". Notice what this does: your age is frozen at that date, not at today's date. Take the same person, born 2 August 2005, and see how it changes:
| Cut-off date | Completed age |
|---|---|
| 1 January 2026 | 20 years, 4 months, 30 days |
| 1 August 2026 | 20 years, 11 months, 30 days |
| 2 August 2026 | 21 years exactly |
| 26 October 2026 (today) | 21 years, 2 months, 24 days |
People often check eligibility against the day they fill the form. A candidate who is 21 today was 20 on the first three dates above. Always run the calculation on the date the notification gives.
Suppose a minimum age of 18 as on 1 January 2026. A person born on 1 January 2008 is exactly 18 and qualifies. A person born on 2 January 2008 is 17 years, 11 months and 30 days, and does not, by one day. A form will not round 11 months and 30 days up to 18. Upper limits have the same edge, and the wording matters: "below 30" and "not above 30" differ by a year. Work out the exact birth date that sits on the boundary before you assume you are inside it.
Relaxations for certain categories are specific to each notification. I am deliberately not quoting any limits here; they differ between recruiters, so the notification you are applying to is the only source that counts.
A routine I would follow before submitting any form
- Copy the date of birth exactly as it appears on the certificate the form asks you to match. A mismatch there is a bigger risk than any arithmetic.
- Find the cut-off date in the notification, and note whether "last date of application" was extended.
- Calculate completed years, months and days as on that date, not today.
- Check the day before and the day after your own birthday on the cut-off date. If either side flips your eligibility, you are on a boundary and should read the rule twice.
- If you were born on 29 February, or on the 29th to 31st of a month, and the cut-off is near a month-end, get the convention in writing.
The age calculator takes a birth date and an "as on" date, and shows the years, months and days in one go, using the calendar method described above. It does the arithmetic. It cannot tell you which date your notification means, or whether a particular relaxation applies to you. If the percentage side of dates and ranges is also a weak spot, the guide to percentage mistakes is a short read.
This article is general information, not financial, medical or legal advice. See the disclaimer. Spotted a mistake? Email hello@hukhlatri.in and we will check and correct it.