Age Calculator · observed 2026-08-17
One leap day, 9,131 days lived, and a March 1 rule
For someone born on February 29, why does the calculator mark March 1 as the next birthday—and which number should you use for a day milestone?
Try February 28, then March 1
Enter birth 2000-02-29 and target 2025-02-28. The recorded result is 9,131 elapsed days, displayed as 24 years, 11 months, 30 days, with the next birthday on March 1. There is no February 29 in 2025; the calculator uses March 1 for this leap-day birthday.
The day total measures the interval. Years, months and days express it using a calendar convention. Two calculators can agree on elapsed days without using the same birthday rule.
9,131 days
Historical result · 2026-08-17
2000-02-29 → 2025-02-28
24 years, 11 months, 30 days.
Production interface, 2026-08-17, as shown in the cover. The same day total and calendar age were observed again on 2026-09-13.
LIMIT A date-only interval, not a measurement from a recorded birth time.
Move the target across the boundary
Changing only the target to 2025-03-01 returned 9,132 days and 25 years, 0 months, 0 days. That pair makes the March 1 convention visible. In the leap year 2024, the whole-year birthday instead appears on February 29.
All seven day totals matched independent subtraction with Python's datetime.date. The calendar ages are interface outputs only—including the unusual 23 years, 11 months, 27 days before the 2024 leap birthday. The day check does not validate those year/month/day breakdowns.
Scroll sideways · keyboard: focus table, use arrow keys
| Birth date | Target date | Elapsed days | Calendar age |
|---|---|---|---|
| 2000-02-29 | 2025-02-28 | 9,131 | 24 / 11 / 30 |
| 2000-02-29 | 2025-03-01 | 9,132 | 25 / 0 / 0 |
| 2000-02-29 | 2024-02-28 | 8,765 | 23 / 11 / 27 |
| 2000-02-29 | 2024-02-29 | 8,766 | 24 / 0 / 0 |
| 2025-03-01 | 2025-03-01 | 0 | 0 / 0 / 0 |
| 2024-01-31 | 2024-02-29 | 29 | 0 / 1 / 0 |
| 2024-12-31 | 2025-01-01 | 1 | 0 / 0 / 1 |
Browser observations: 2026-09-13, Chromium 148.0.7778.96, UTC, en-US, fresh browser contexts. These cases do not cover every timezone or calendar boundary.
A month on the display is not a fixed number of days
January 31 to February 29, 2024, displays as one month and zero days, alongside 29 elapsed days. Multiplying the months by a fixed day length will not check this result: months have unequal lengths.
The equal-date case returned zero. The reversed pair—birth 2025-03-02, target 2025-03-01—returned “Birth date must be before the target date.” Despite “before,” equal dates were accepted in the same run.
For a day milestone, use date addition instead. Adding 10,000 days to 2000-02-29 gives 2027-07-17, matching the historical axis below, regardless of the birthday convention.
Historical axis · recorded 2026-08-17
- Birth date
- Target · 9,131 elapsed days
- Next birthday — March 1 leap-day convention
- 10,000 days after birth
Check the number you actually need
- Enter the February 28 date pair above. Record the day total, calendar age and next-birthday date separately.
- Change only the target to 2025-03-01 and compare with the second table row.
- Try your own dates and save them with the output. Cross-check elapsed days by subtracting birth date from target date in a separate date calculator or library. Do not add an inclusive extra day: equal dates returned zero here.
- For calendar age, compare the birthday and month-end conventions—not just the day total.
Days × 24 ≠ timed life history
What the hours field measures
The 2025-02-28 result also displayed 219,144 hours: 9,131 days at 24 hours per day. Without a birth time or a check of timezone transitions, that is a conversion, not measured hours actually lived.
LIMIT For an eligibility decision, obtain the applicable rule from the authority making that decision; the calculator is not an eligibility determination.
“10,000 days after 2000-02-29” needs a date calculation. “Has this person reached the required age?” also needs the rule set by the authority making that decision. Choose the question before relying on the number.