Count all date boundaries
Use Days Between Dates when both endpoints already exist and you need an included or excluded day count.
Add or subtract · Ordered units · Month-end clamp
Move a YYYY-MM-DD civil date by calendar years, months, weeks, and days. The calculator states its operation order and clamps impossible month-end dates instead of allowing a hidden overflow.
start 2025-01-31
change +1 month
result 2025-02-28Last valid dayNot March overflow
Move one civil date by declared units
Enter a starting date in YYYY-MM-DD form, select addition or subtraction, and provide whole values for years, months, weeks, or days. Review both the final date and the displayed rule summary.
Loading the date calculator…
Enable JavaScript to apply calendar offsets. The unit order, month-end behavior, leap-year examples, and date-versus-time distinction remain readable below.
Mixed calendar units are not freely interchangeable
This calculator applies years and months before weeks and days. That order is observable. Starting at January 30, adding one month and then two days can reach March 2 in a common year because the month step first clamps to February 28. Adding two days first reaches February 1, after which one month reaches March 1. Both sequences are defensible; they are not the same operation.
Years and months modify calendar fields. Weeks and days then cross a fixed number of date labels, with one week defined as seven days. The tool does not convert a year to 365 days or a month to 30 days. When subtraction is selected, the same ordered model is applied in the negative direction rather than swapping the labels after an unrelated calculation.
Record the original date, each signed unit, the order, and the final date when the result enters a test case or business rule. A naked output such as “April 30” does not reveal whether an intermediate clamp occurred.
Invalid dates need a declared resolution
Clamp is not rollover. Some programming APIs construct an invalid February 31 and normalize it into March; that produces a different contract. The page uses the last valid day specifically so adding a month aims at the requested destination month.
Date arithmetic is not schedule arithmetic
Use Days Between Dates when both endpoints already exist and you need an included or excluded day count.
Use the Business Days Calculator for a working-day schedule with explicit weekend and holiday inputs.
Use the Time Duration Calculator for start/end times, overnight shifts, and break subtraction.
Use the Week Number Calculator when the goal is an ISO week-year, week number, and weekday.
Calendar movement answers
The calculator applies the signed year and month movement first, clamps the day if the destination month is shorter, and then applies whole weeks and days. Order matters near month ends, so this contract is shown with the result.
The day is clamped to the final valid day of the destination month. For example, moving one month from January 31 reaches the last day of February rather than overflowing into March.
No. A calendar month moves the year-month field and keeps the day when valid, while 30 days advances exactly 30 date boundaries. These operations can produce different dates.
No. This page operates on Gregorian date-only values, not zoned timestamps. Advancing one date boundary is a calendar operation even when the elapsed interval between local midnights is 23 or 25 hours.
Enter the starting civil date as YYYY-MM-DD. Native date controls may render a localized label, but the value contract and copied interpretation use year-month-day order.