Home › Time & Geography › Anniversary Calculator
Anniversary Calculator
Counts completed years, months and days since a start date (wedding, job, founding), finds the next anniversary date and the days until it, and names the traditional anniversary gift material for that year.
When to use
You want to know which anniversary is coming up, how many days remain until it, or the traditional gift for a given anniversary year.
Do not use when: You need someone's age (use age) or a general date difference with business days (use date-difference).
Formula
years_completed = calendar years from start_date to as_of_date; next_anniversary = first (month, day) of start_date on or after as_of_date; days_until = next_anniversary − as_of_date
Gregorian calendar arithmetic in UTC. Gift materials follow the common US/UK traditional list (paper, cotton, leather … silver at 25, gold at 50, diamond at 60); years without a traditional material return a note instead.
Inputs
| Parameter | Type | Unit | Required | Description |
|---|---|---|---|---|
start_date | date | yes | Date of the original event (YYYY-MM-DD), e.g. the wedding date. | |
as_of_date | date | default today | Reference date; defaults to the current UTC date. |
Outputs
| Output | Type | Unit | Description |
|---|---|---|---|
years_completed | integer | years | Full years elapsed on as_of_date. |
elapsed_text | string | Years, months and days since start_date. | |
days_since_start | integer | days | as_of_date − start_date. |
next_anniversary_date | date | First anniversary date on or after as_of_date (29 February → 1 March in common years). | |
next_anniversary_number | integer | Ordinal of the next anniversary (e.g. 12 for the 12th). | |
next_anniversary_weekday | string | Day of the week of the next anniversary. | |
days_until_next_anniversary | integer | days | 0 when as_of_date is the anniversary itself. |
is_anniversary_today | boolean | true when as_of_date is an anniversary of start_date. | |
traditional_gift | string | Traditional gift material for the next anniversary year (years 1–15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 70). |
Example
Wedding 2015-06-20, as of 2026-09-23: {"start_date":"2015-06-20","as_of_date":"2026-09-23"} → {"years_completed":11,"elapsed_text":"11 years 3 months 3 days","days_since_start":4113,"next_anniversary_date":"2027-06-20","next_anniversary_number":12,"next_anniversary_weekday":"Sunday","days_until_next_anniversary":270,"is_anniversary_today":false,"traditional_gift":"Silk"}
Silver wedding: 1999-02-14 as of 2024-02-14: {"start_date":"1999-02-14","as_of_date":"2024-02-14"} → {"years_completed":25,"days_since_start":9131,"next_anniversary_date":"2024-02-14","next_anniversary_number":25,"days_until_next_anniversary":0,"is_anniversary_today":true,"traditional_gift":"Silver"}
GET https://tttkmbb.com/api/v1/calculate/anniversary?start_date=2015-06-20&as_of_date=2026-09-23
Machine access
- API:
GET https://tttkmbb.com/api/v1/calculate/anniversary(query parameters) orPOSTwith a JSON body{"inputs": {...}} - Schema: https://tttkmbb.com/api/v1/calculators/anniversary · Markdown: https://tttkmbb.com/time/anniversary.md · JSON definition: https://tttkmbb.com/time/anniversary.json
- MCP: server
https://tttkmbb.com/mcp, toolrun_calculator with calculator_id="anniversary" - OpenAPI operationId:
calculate_anniversary - Freshness:
daily. Authentication: none. Rate limit: fair use (see rate limits).
Sources
FAQ
Which anniversary does the gift refer to?
The next one: on 2026-09-23 a couple married on 2015-06-20 has completed 11 years, so the upcoming 12th anniversary (silk) is reported. On the anniversary day itself that day's number is used.
Are modern gift lists included?
No; only the traditional materials. Modern lists (clocks, china, crystal, appliances…) vary by country and retailer.
Related calculators
- Age Calculator — The same calculation for a person's birthday.
- Days Until Calculator — Countdown to any date.
- Date Difference Calculator — Exact difference between two dates including business days.