Date and Age Calculator avatar

Date and Age Calculator

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Date and Age Calculator

Date and Age Calculator

Calculate age from a birth date, the number of days between two dates, or add and subtract years, months, weeks and days. Every row returns years, months, days, running totals, weekdays, the next birthday and the zodiac sign. Runs fully offline with no API key.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Mangudäi

Mangudäi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Date and Age Calculator: age, days between dates, add or subtract time

Work out how old someone is, how many days sit between two dates, or what the date will be 90 days from now. Every calculation runs offline on the Python standard library, so there is no API key, no rate limit, and nothing that can break when a website changes.

Send one calculation or a hundred in a single run. Each one comes back as a row in a clean table you can export to CSV, Excel, JSON or XML.

What it does

Four calculation types, set with the type field:

age gives the age from a birth date to today or to any reference date, plus the next birthday, days until it, the age being turned, the western zodiac sign and the Chinese zodiac animal.

difference gives the full gap between two dates: calendar years, months and days, plus totals in months, weeks, days, hours, minutes and seconds.

add moves a date forward by years, months, weeks, days, hours or minutes.

subtract moves a date backward by the same units.

Month arithmetic follows the calendar rather than a fixed 30 days, so 31 January plus one month lands on 28 or 29 February, and a 29 February birthday rolls to 1 March in non-leap years.

Input

FieldTypeDescription
calculationsarrayOne object per calculation. Required.
referenceDatestringTreated as today for age rows with no toDate. Defaults to the current UTC date.

Fields inside each calculation object:

FieldDescription
typeage, difference, add or subtract
labelYour own name for the row, copied to the output
dateStart date, or birth date for age. YYYY-MM-DD or a full ISO timestamp
toDateSecond date for difference, or the as-of date for age
years, months, weeks, days, hours, minutesDuration for add and subtract

Example input:

{
"calculations": [
{ "label": "Age from birth date", "type": "age", "date": "1990-05-15" },
{ "label": "Contract length", "type": "difference", "date": "2026-01-01", "toDate": "2026-12-31" },
{ "label": "Invoice due", "type": "add", "date": "2026-07-18", "days": 30 },
{ "label": "Eighteen months ago", "type": "subtract", "date": "2026-07-18", "months": 18 }
]
}

Output

One row per calculation:

FieldDescription
labelYour label
typeCalculation type
startDate, endDateThe two dates used
resultDateThe computed date for add and subtract
years, months, daysCalendar breakdown
humanReadableThe same breakdown in words, for example 36 years, 2 months and 3 days
totalMonths, totalWeeks, totalDays, totalHours, totalMinutes, totalSecondsWhole-unit totals
weeksAndDaysTotals as weeks plus leftover days
startWeekday, endWeekdayDay of the week for each date
nextBirthday, daysUntilNextBirthday, ageAtNextBirthdayBirthday fields, age type only
zodiacSign, chineseZodiacSigns from the birth date, age type only
datesReversedTrue when the second date falls before the first
errorReason a row failed, otherwise empty

Sample row:

{
"label": "Age from birth date",
"type": "age",
"startDate": "1990-05-15",
"endDate": "2026-07-18",
"years": 36,
"months": 2,
"days": 3,
"humanReadable": "36 years, 2 months and 3 days",
"totalDays": 13213,
"totalWeeks": 1887,
"startWeekday": "Tuesday",
"nextBirthday": "2027-05-15",
"daysUntilNextBirthday": 301,
"ageAtNextBirthday": 37,
"zodiacSign": "Taurus",
"chineseZodiac": "Horse"
}

Uses

Age verification and eligibility checks on a list of birth dates. Contract, lease and subscription lengths. Invoice and payment due dates. Project timelines and countdowns to a launch. Retention cohorts measured in days since signup. Bulk cleaning of date columns exported from a CRM.

Notes

A bad date does not stop the run. That row comes back with an error message and the rest continue.

All arithmetic is done in naive UTC. Timestamps carrying an offset are converted to UTC first.

Billing is pay per event: a small charge per actor start and a charge per result row.