Date & time

Date Calculations Without the Off-by-One: D-Days, Anniversaries, Age and Months Old

How many days until the exam? When is the 100th day? How many months old is the baby? Date maths is full of one-day differences, so it pays to know the rule being used.

How D-day counting works

D-day counting labels the target date D, the day before D-1 and the day after D+1. The days remaining are simply target date minus today. On 28 October 2026, 25 December is D-58.

The key is to compare calendar dates, not timestamps. Whether you check at 11 p.m. or 7 a.m., if today is 28 October the answer must be the same. Computing hours and dividing by 24 can be off by a day because of daylight saving or time zones, so a D-day calculator compares dates only.

Anniversaries count the first day as day 1

Unlike D-day, Korean 'day count' celebrations such as a couple's 100th day or a baby's 100-day feast usually count the starting day as day 1. The 100th day is therefore the start date plus 99 days: starting on 1 March 2026, the 100th day is 8 June.

Elapsed-days calculations, on the other hand, count the start as day 0. For the same two dates, 'days elapsed' and 'day number' differ by one. Remembering this explains most results that look a day off.

Start: 2026-03-01
Elapsed days: 2026-06-08 is 99 days after the start
Day number:   2026-06-08 is the 100th day

Calculating age in years

Since 28 June 2023, Korea uses international age (often called 'man age') for legal and administrative purposes, in line with most of the world. You are 0 at birth and gain a year on each birthday: current year − birth year, minus one if this year's birthday has not yet passed.

People born on 29 February have no birthday in common years. Many legal systems treat the age as increasing at the end of 28 February, but some services use 1 March, so check the official rule when age determines eligibility.

Months old means calendar months

Ages in months for vaccinations or development records are counted in calendar months, not days divided by 30. A month is added each time the same day of the month comes round: a baby born on 15 May is one month old on 15 June and zero months old until 14 June.

The formula is (years × 12) + month difference, minus one if the reference day of the month is earlier than the birth day. Someone born on 22 October 1975 is, on 12 August 2026, (51 × 12) + (8 − 10) = 610, minus one because the 12th is before the 22nd: 609 months old. Large numbers make for fun birthday cards.

Month ends: one month after 31 January

There is no 31 February, so most programming languages and calculators clamp one month after 31 January to the last day of February (28th or 29th). One month before 31 March is likewise the end of February. Subscription billing dates and contract end dates sometimes move a day or two because of this.

Leap years matter too. In the Gregorian calendar a year divisible by 4 is a leap year, unless divisible by 100, unless also divisible by 400. So 2000 was a leap year and 2100 will not be.

Checklist for accurate date maths

The AIBIZAP D-day calculator, age-in-months card generator and time zone calculator all work on calendar dates, so you can check results against the rules above.

  • Decide whether the first day counts (day number) or not (elapsed or remaining days).
  • Compare dates, not times; for international events, decide whose calendar date applies.
  • Check month-end clamping for month arithmetic and leap years for year arithmetic.
  • Legal deadlines often have special rules, such as excluding the first day, so follow the official definition.

Try it with these tools

More guides

All guides