HomeUncategorizedAdd Days to Date Calculator - Free Date Adder

Add Days to Date Calculator – Free Date Adder

Add Days to Date Calculator (Free) | StatsUnlock

Add Days to Date Calculator

Add days to a date, or subtract them, and get the exact result date with the weekday it lands on. Stack weeks, months and years on top, skip weekends and holidays in business day mode, and see the same calculation written out for Excel, R and Python.

Date & TimeAdd or SubtractBusiness DaysHoliday ListWeekday ResultFree

📅 1. Calculator

Inputs

The page opens with a worked example already calculated. Pick a scenario, then press Calculate to see its answer.
Subtract is how you work backwards from a deadline.
Any date from year 1 to year 9999. Use the calendar icon or type it directly.

How much to add

Whole numbers only. Years and months are applied first, then weeks and days, which is the order every spreadsheet uses.
Business day mode applies to the days and weeks fields only.
Only used in business day mode.
⚙ Advanced options
Format YYYY-MM-DD. Used in business day mode only. Weekend holidays are ignored, because that day is already skipped.
Some contracts count inclusively. This shifts the answer by one day.

Your Result

___result date
Press Calculate
SunSat
Days counted from the start date
___
Calculation
result date = start date + number of days
30 August 2026 + 30 days = ___

Download your result as a plain text file. Edit any field above and press Calculate to refresh it.

📊 2. Your Results

Set your start date and the number of days above, then press Calculate Date. The result date, the weekday, the day and week numbers, the full breakdown table, both charts and the export buttons will appear here.

Quick Answer

To add days to a date, count forward from the start date one day at a time and roll into the next month whenever you pass its last day.

result date = start date + n days  ·  Excel: =A2+n  ·  30 Aug 2026 + 30 = 29 Sep 2026

Rule of thumb: 30 days is not one month. Add days when your document says days, and add months when it says months, because 31 January plus one month is 28 February while 31 January plus 30 days is 2 March.

Day counting has three traps. The first is whether the start day counts as day one, which shifts every answer by a day. The second is whether the days are calendar days or working days, since 90 working days is about 126 calendar days. The third is the end of the month, where adding a month to the 31st has to land somewhere real. This calculator handles all three and tells you which rule it applied.

Key Takeaways

  • To add days to a date, add the number of days to the start date; in Excel that is literally =A2+30, because Excel stores a date as a day number.
  • Adding 30 days and adding one month give different answers in 8 months out of 12.
  • 90 working days is about 126 calendar days, so a contract term changes meaning completely depending on which one it names.
  • Adding one month to 31 January clamps to 28 or 29 February, because 31 February does not exist.
  • Counting the start day as day one moves every result one day earlier, which is the single most common cause of a disputed deadline.
  • A year is a leap year when it divides by 4, except century years, which must divide by 400.

💬 People Also Ask

What is 30 days from a date?

Thirty days from a date is that date plus 30 calendar days, weekends included. From 30 August 2026 it is Tuesday 29 September 2026. Thirty days is not one month: months run 28 to 31 days, so the two answers differ in eight months out of twelve.

How do you add days to a date manually?

Count the days left in the current month, subtract that from your total, then carry the remainder into the next month. From 30 August, one day reaches 31 August and the other 29 land on 29 September. Repeat month by month until the total is used up.

How many working days is 90 calendar days?

Ninety calendar days contains 64 or 65 working days once weekends are removed, depending on which weekday you start from. Read the other way, 90 working days takes about 126 calendar days. That gap of five weeks is why a contract that says days rather than working days is worth reading twice.

Does adding 30 days always change the weekday?

Yes, by exactly two days. Thirty divided by seven leaves a remainder of two, so a Sunday start becomes a Tuesday. Only multiples of seven leave the weekday untouched, which makes that the quickest free check on any date calculation you do.

What is the formula to add days to a date?

The formula is result date equals start date plus n days. Spreadsheets store a date as a day number, so the arithmetic is ordinary addition: in Excel it is =A2+30, in R as.Date("2026-08-30") + 30, and in Python date(2026, 8, 30) + timedelta(days=30).

How do I count 90 days from today?

Enter today's date as the start date, type 90 in the days field and press Calculate. The tool returns the exact date, the weekday it falls on and the ISO week number. Switch to business day mode first if your deadline counts working days only.

📚 3. What Does It Mean to Add Days to a Date?

When you add days to a date you move forward along the calendar by a fixed number of whole days. The date is not a quantity you can average or split. It is a position on a line, and adding days slides you along that line. Every day you pass counts once, whatever month it belongs to, so the answer rolls into the next month automatically when you run past the last day of the current one.

Computers make this easy by turning a date into a plain number. The international standard for writing and ordering dates is ISO 8601, which is why every date field on this page uses the YYYY-MM-DD form. Excel counts days from 1 January 1900, so 30 August 2026 is the number 46264 and adding 30 gives 46294, which is 29 September 2026. Unix systems count seconds from 1 January 1970. R counts days from 1 January 1970. In every case the addition is ordinary arithmetic on a counter, and the calendar formatting is applied afterwards.

A worked one-liner: 30 August 2026 plus 30 days. August has 31 days, so 1 day takes you to 31 August, and the remaining 29 days take you to 29 September 2026, which is a Tuesday.

30 Aug 2026 start date 29 Sep 2026 result date + 30 days 1 day to the end of August, then 29 days into September
Adding days to a date is movement along a line, not arithmetic on the month and the day separately. That is why the month boundary takes care of itself.

A note on the method this tool uses, and why. Three counting conventions are in common use and they disagree by a day or more, so a calculator has to pick one and say which. This one counts exclusively by default, meaning day 1 is the day after the start date, because that is what spreadsheets, programming languages and ordinary speech all do. It clamps month ends rather than rolling them forward, matching Excel's EDATE function and the Python datetime library. And it never moves a result off a weekend by itself, because whether a deadline rolls forward or backward is a term of your contract, not a property of the calendar. Tools that roll dates silently are the reason two parties can run the same sum and get different answers.

Who needs this and why. Lawyers count notice periods and limitation dates. Accountants count payment terms such as net 30 and net 90. Shipping teams promise delivery in working days. Clinics book follow-up appointments 6 weeks out. Students count backwards from a submission deadline. Project managers convert a plan measured in working days into calendar dates a client can read.

Days, weeks, months and years are not interchangeable. Days and weeks are fixed lengths, so they behave the same everywhere on the calendar. Months and years are variable, so adding them is a different operation with its own end of month rule. The table below is the whole difference in one place.

Unit addedFixed length?What can surprise youExample from 31 January 2026
DaysYes, always 1 dayNothing, it is the simplest case+30 days = 2 March 2026
WeeksYes, always 7 daysThe weekday never changes+4 weeks = 28 February 2026
MonthsNo, 28 to 31 daysThe day of month is clamped to the last valid day+1 month = 28 February 2026
YearsNo, 365 or 366 days29 February clamps to 28 February in a common year+1 year = 31 January 2027
Business daysNo, depends on the weekWeekends and holidays are skipped, not counted+30 business days = 13 March 2026

Conclusion: read your document carefully. The word it uses decides which row of this table you are in, and the rows genuinely disagree.

🧠 4. Interpretation of Your Result

Run the calculator above to fill this section with your own dates. The ten sub-sections below explain every part of the output.

4.1 What your result date actually is

Your result date is the calendar day you reach after counting the number of days you asked for, starting from the day after your start date unless you switched on inclusive counting. It is a position, not a duration. The calculator also reports the weekday, because in practice the weekday is what decides whether a deadline is workable at all. A deadline that lands on a Sunday is a deadline that in effect lands on the Friday before or the Monday after, depending on the rule your document uses.

4.2 The weekday matters more than people expect

Adding a multiple of 7 days never changes the weekday, which is a useful check: if you add 28 days to a Tuesday and do not land on a Tuesday, something is wrong. Adding any other number moves the weekday by that number modulo 7. Adding 30 days moves you forward by two weekdays, because 30 divided by 7 leaves a remainder of 2. Adding 365 days in a common year moves you forward by one weekday, which is why your birthday shifts a day each year and two days across a leap year.

4.3 Calendar days versus working days

In calendar day mode every day counts, including Saturdays, Sundays and public holidays. In business day mode the calculator steps forward one day at a time and only counts a day when it is not a weekend day and not on your holiday list. The gap between the two grows quickly. Ten working days is 14 calendar days. Thirty working days is about 42. Ninety working days is about 126, which is more than four months rather than the three months people expect.

4.4 Why the start day rule changes the answer

By default day 1 is the day after your start date, which is how most spreadsheets, programming languages and everyday speech work: "in three days" said on Monday means Thursday. Many legal and contractual texts instead count the start day itself as day 1, which pulls every answer one day earlier. The calculator states which rule it used in the results table. If your document says "within 30 days of receipt", check whether receipt day counts, because a one day error on a filing deadline is not a rounding issue.

4.5 What the end of month clamp did to your answer

When you add months or years, the day of the month is kept if it exists in the target month and clamped to the last day if it does not. The arithmetic behind this was formalised by Dershowitz and Reingold (1990), whose calendrical calculations paper is the reference most date libraries still trace back to. 31 January plus one month gives 28 February, or 29 February in a leap year. This is what Excel's EDATE, Python's relativedelta and most database engines do, so the calculator matches them deliberately. One consequence surprises people: the operation is not reversible. Adding a month to 31 January gives 28 February, and subtracting a month from 28 February gives 28 January, not 31 January.

4.6 How the day of year and week number help

Fliegel and Van Flandern (1968) published the compact integer algorithm that converts a calendar date to a day number and back, which is why this arithmetic is fast enough to run as you type. The day of year runs from 1 to 365, or 366 in a leap year, and it is the fastest way to compare two dates in the same year without doing any calendar arithmetic. The ISO 8601 week number counts weeks starting on Monday, where week 1 is the week holding the first Thursday of the year. Payroll runs, retail plans and manufacturing schedules are very often expressed in ISO weeks, so having the number beside your date saves a lookup.

4.7 What to do next with your result

Three practical moves. First, check whether the result lands on a weekend or a holiday, and if it does, decide with the other party whether it rolls forward or backward before it becomes a dispute. Second, work backwards: if the result is a deadline, subtract your own preparation time in business day mode to get the date you actually need to start. Third, put the date in your calendar with the rule you used written in the note, because in three months you will not remember whether you counted the start day.

4.8 Common mistakes this calculator prevents

  • Treating 30 days as one month, which is wrong in 8 months out of 12.
  • Adding 12 months of 30 days and getting 360, then wondering why the year is short by five days.
  • Counting working days by dividing calendar days by 5 and multiplying by 7, which ignores where the weekend actually falls.
  • Forgetting 29 February, which is the single most common cause of an off by one date error in a spreadsheet.
  • Pasting a date as text so the spreadsheet adds nothing at all and silently returns an error.
  • Mixing day-month-year and month-day-year formats, so 03/04/2026 becomes two different days.

4.9 What this result does not tell you

It does not tell you whether the deadline is legally valid, whether a court would move it, or whether the other party counts the same way. It does not know about local public holidays unless you paste them in, and it does not know about half days, company shutdowns or time zones. A date has no time attached here, so an appointment at 23:00 on the result date is the same date as one at 09:00.

4.10 Practical judgement

Calculate the date, then read it back in words: "thirty days from Sunday 30 August 2026 is Tuesday 29 September 2026". Saying it out loud catches most mistakes immediately, because a wrong weekday sounds wrong. Then confirm which counting rule your document uses before you act on the number, and keep a note of the rule with the date.

5. How to Use Your Result

▶ Run the calculator above to auto-fill all five templates with your own dates.

1. A plain sentence to save or send
Run the calculator to fill this in.
📌 How to use this one
  • Paste it into the email that confirms the date, so both sides see the same wording.
  • Always name the weekday. It is the fastest way for a reader to spot an error.
  • Say which counting rule you used, calendar or working days.
2. What to ask the other side
Run the calculator to fill this in.
📌 How to use this one
  • Send it before the deadline matters, not after.
  • The three questions cover the three ways day counting goes wrong.
  • Keep the reply. It settles any later argument in one line.
3. A working back plan
Run the calculator to fill this in.
📌 How to use this one
  • Set the direction to Subtract and use business day mode for the preparation steps.
  • Leave a buffer. A plan with no slack fails on the first sick day.
  • Put each milestone in the calendar as an all day event.
4. A tracking line for your calendar
Run the calculator to fill this in.
📌 How to use this one
  • Paste it into the calendar event notes, not just the title.
  • Recording the rule you used is what makes the date defensible later.
  • Set a reminder a week before, not on the day.
5. A formal version for a document
Run the calculator to fill this in.
📌 How to use this one
  • Write dates in full in formal documents, never as 03/04/2026.
  • State the counting convention in the same sentence as the date.
  • If holidays were excluded, list them or name the calendar they came from.

6. Formulas Used

Add Days to a Date, the Main Formula
D₁ = D₀ + n
D₁Result date, the day you land on
D₀Start date, treated as a day number
nNumber of days to add, a whole number, unitless count
RangeAny n from 0 to about 3 million days, which covers year 1 to year 9999
RuleSubtracting is the same formula with a negative n
Example30 Aug 2026 + 30 = 29 Sep 2026
Weeks, and Why the Weekday Never Moves
D₁ = D₀ + 7w  ·  weekday shift = n mod 7
wNumber of weeks, unitless count
n mod 7The remainder after dividing the days by 7, which is how far the weekday moves
RuleAny multiple of 7 leaves the weekday unchanged, which is a free error check
Example30 mod 7 = 2, so adding 30 days moves you two weekdays forward
Adding Months, With the End of Month Clamp
m₁ = m₀ + k  ·  d₁ = min(d₀, lastDay(y₁, m₁))
kNumber of months to add, unitless count
d₀, d₁Day of the month before and after, 1 to 31
lastDayThe number of days in the target month, 28 to 31
NoteThe clamp makes the operation one way: adding then subtracting a month may not return you to the start
Example31 Jan + 1 month = 28 Feb in a common year
Business Days, Skipping Weekends and Holidays
step D by ±1 until count(D not weekend and D not holiday) = n
weekendThe set of weekday numbers that do not count, for example Saturday and Sunday
holidayAny date on your list, ignored if it already falls on a weekend
RequiresAt least one working day in the week, or the count can never finish
Approximationcalendar days ≈ business days × 7 ÷ 5, useful for a rough check only
Example90 business days is about 126 calendar days
The Reverse Calculation, Days Between Two Dates
n = D₁ − D₀  ·  inclusive count = D₁ − D₀ + 1
nDays between the two dates, in days
+1Added when both end dates are counted, as in a hotel stay or a hire period
RuleIf you add n days and then subtract n days you must return to the start date exactly
Use forChecking any answer this calculator gives you
Leap Years and Real Month Lengths
leap = (y mod 4 = 0 and y mod 100 ≠ 0) or (y mod 400 = 0)
yThe year, unitless
Month lengths31, 28 or 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
Rule2000 was a leap year because it divides by 400; 1900 was not
NoteNever approximate a month as 30 days or a year as 365 when the exact date matters
Day of Year and the ISO 8601 Week Number
DOY = Σ lengths of earlier months + d  ·  ISO week 1 holds the first Thursday
DOYDay of year, 1 to 365 or 366, unitless
ISO weekWeek number 1 to 52 or 53, weeks starting on Monday
NoteEarly January can fall in week 52 or 53 of the previous ISO year
Use forPayroll periods, retail calendars and project plans quoted in week numbers

📝 7. How to Use This Calculator

The worked example carried through all ten steps is: start on 30 August 2026 and add 30 days, which gives Tuesday 29 September 2026.

  1. Enter your start date. The field is pre-filled with 30 August 2026 so the page is never blank. Click the calendar icon or type the date directly.
  2. Choose add or subtract. Leave it on Add to move forward. Choose Subtract to work backwards from a deadline, which is the same arithmetic in the other direction.
  3. Type the number of days. Enter 30 for the worked example. Whole numbers only, because a date is a whole day and half a day has no calendar meaning.
  4. Add weeks, months or years if you need them. The four fields stack, so 1 month and 10 days is a single calculation. Leave them at zero for a plain day count.
  5. Pick calendar days or business days. Calendar days count every day, which is what the worked example uses. Business days skip weekends, which is what shipping and many contracts mean.
  6. Set the weekend rule if you chose business days. Saturday and Sunday is the default. Friday and Saturday suits much of the Middle East, and Sunday only suits some six day working weeks.
  7. Paste any holidays into Advanced options, one date per line in YYYY-MM-DD form. They are skipped in business day mode. Weekend holidays are ignored, since that day is already skipped.
  8. Decide whether the start day counts. The default is no, so 30 August plus 1 day is 31 August. Switch it on if your document counts the start day as day 1, which shifts the result one day earlier.
  9. Press Calculate Date. The page opens with this worked example already answered, and any change you make clears the results so you never read stale numbers. Press Calculate and the result panel shows 29 September 2026 with its weekday, while the calculation strip shows your own numbers inside the formula.
  10. Read the results and export. Section 2 gives the full breakdown, the weekday table and both charts. Download TXT gives the short answer, and Download Doc and Download PDF give the whole report.

📈 8. How Do You Add Days to a Date in Excel?

Excel stores every date as a whole number counting days from 1 January 1900, so adding days to a date in Excel is ordinary addition. The date 30 August 2026 is stored as the number 46264, and adding 30 gives 46294, which Excel displays as 29 September 2026 once the cell is formatted as a date. Everything else in this section is built on that one idea.

The whole thing in one line: with your start date in A2, type =A2+30 and press Enter. If the answer appears as a number, select the cell and set the number format to Short Date. The same formulas work unchanged in Google Sheets.

8.1 The functions you need

You wantExcel formulaNote
Add days to a date=A2+30The plain answer. Works because a date is a day number
Subtract days from a date=A2-30Same formula in reverse
Add weeks=A2+7*4The weekday never changes when you add whole weeks
Add months=EDATE(A2,3)Clamps 31 January to the end of the target month
Add years=EDATE(A2,12*2)Or =DATE(YEAR(A2)+2,MONTH(A2),DAY(A2))
Add working days=WORKDAY(A2,30)Skips Saturday and Sunday
Add working days with holidays=WORKDAY(A2,30,$D$2:$D$12)The third argument is a range of holiday dates
Custom weekend=WORKDAY.INTL(A2,30,7)Code 7 is Friday and Saturday, code 11 is Sunday only
Last day of the target month=EOMONTH(A2,1)End of next month, useful for payment terms
Today plus n days=TODAY()+30Recalculates every time the file opens
Name the weekday=TEXT(B2,"dddd")Returns Tuesday for the worked example
Days between two dates=B2-A2The reverse calculation, format the answer as General
Working days between two dates=NETWORKDAYS(A2,B2)Counts inclusively, unlike WORKDAY
ISO week number=ISOWEEKNUM(B2)Weeks starting Monday, ISO 8601 rule
Day of the year=B2-DATE(YEAR(B2),1,1)+1Returns 272 for 29 September 2026
The number format trap. When you type =A2+30 into an empty cell, Excel usually copies the date format from A2 and shows a date. When you type it into a cell that was previously formatted as General or as a number, it shows 46294 instead. The formula is correct either way. Press Ctrl+Shift+3 or set the format to Short Date.

8.2 Step by step

1 Put a real date in A2

Type the start date and check that it right aligns on its own. A date that sits on the left of the cell is text, not a date, and adding a number to text gives #VALUE! rather than an answer.

Xadd-days.xlsx - ExcelA2fx30/08/2026AB1Start dateNote230/08/2026a real date, right aligned34

The start date 30/08/2026 sits in A2, right aligned, which is how you know Excel has read it as a real date.

2 Add the days in B2, then name the weekday in C2

This is the whole calculation. The weekday column costs one extra formula and catches more errors than any other check, because a wrong weekday is obvious at a glance.

=A2+30=TEXT(B2,"dddd")
Xadd-days.xlsx - ExcelB2fx=A2+30ABC1Start date+30 daysWeekday230/08/202629/09/2026Tuesday331/01/202602/03/2026Monday415/04/202615/05/2026Friday

Row 2 is the worked example: 30/08/2026 plus 30 days is 29/09/2026, a Tuesday. Rows 3 and 4 show two more start dates using the same two formulas filled down.

3 Compare 30 days against one calendar month

This is the comparison that settles most arguments. EDATE adds calendar months and clamps the day of the month; plain addition does not.

=EDATE(A2,1)=A2+30
Xadd-days.xlsx - ExcelC2fx=EDATE(A2,1)ABCD1Start date=A2+30=EDATE(A2,1)Same answer?231/01/202602/03/202628/02/2026No, 2 days apart315/04/202615/05/202615/05/2026Yes431/03/202630/04/202630/04/2026Yes531/05/202630/06/202630/06/2026Yes

Only row 2 disagrees. 31/01/2026 plus 30 days is 02/03/2026, while EDATE gives 28/02/2026. In April, March and May the two answers happen to match, because those months are followed by a 30 day month.

4 Skip weekends and holidays with WORKDAY

Put your holiday dates in their own column and lock the range with dollar signs so it does not shift when you fill the formula down.

=WORKDAY(A2,30)=WORKDAY(A2,30,$D$2:$D$4)
Xadd-days.xlsx - ExcelB2fx=WORKDAY(A2,30) then =WORKDAY(A2,30,$D$2:$D$4)ABCD1Start date+30 work daysPlain +30Holidays230/08/202609/10/202629/09/202607/09/2026330/08/202612/10/202629/09/202626/11/2026425/12/2026

Thirty working days from 30/08/2026 is 09/10/2026. Adding the holiday on 07/09/2026 pushes it to 12/10/2026, because one counted day has been removed from the span.

5 Finish the summary block

Five rows that tell the whole story: the result date, its weekday, the days added, the day of the year and the ISO week number. This is the block worth pasting into an email.

=B2-DATE(YEAR(B2),1,1)+1=ISOWEEKNUM(B2)
Xadd-days.xlsx - ExcelB6fx=ISOWEEKNUM(B2)AB1ItemValue2Result date29/09/20263WeekdayTuesday4Days added305Day of year2726ISO week number40

The finished block: result date 29/09/2026, weekday Tuesday, 30 days added, day of year 272, ISO week 40. Every number here matches the R and Python scripts below.

8.3 The awkward cases

Adding a month to the 31st. =EDATE(A2,1) on 31 January returns 28 February, and on 31 March returns 30 April. Excel never invents a 31 February. What surprises people is that the operation is not reversible: =EDATE(EDATE(A2,1),-1) starting from 31 January gives 28 January, not 31 January.

Adding years across 29 February. =EDATE("2028-02-29",12) gives 28 February 2029, because 2029 is not a leap year. =DATE(YEAR(A2)+1,MONTH(A2),DAY(A2)) gives 1 March 2029 instead, because DATE rolls an impossible day forward rather than clamping it. Both are defensible, and they disagree. Pick one and say which.

Negative and zero arguments. =WORKDAY(A2,0) returns the start date itself even when the start date is a Saturday, which is not what most people expect. =WORKDAY(A2,-10) counts backwards correctly. If you need the next working day on or after a date, use =WORKDAY(A2-1,1).

Blank cells. An empty A2 is read as zero, which Excel formats as 0 January 1900. Guard the formula with =IF(A2="","",A2+30) so a half filled sheet does not display nonsense dates.

Dates before 1900. Excel cannot store them as dates at all in the 1900 system, so historical work has to use text or a different tool. This calculator handles year 1 onwards, so the two will disagree on anything before 1900.

8.4 Why your Excel answer might differ from R or Python

SituationWhat happensFix
Excel's 1900 leap year bugExcel treats 29 February 1900 as a real date, so serial numbers before 1 March 1900 are one day out from any other systemOnly matters before March 1900. Ignore it for modern dates
You added 30 days, the other tool added a monthAnswers differ in 8 months out of 12Use EDATE for months and plain addition for days, and say which one the document means
WORKDAY versus NETWORKDAYSWORKDAY returns a date and counts exclusively; NETWORKDAYS returns a count and includes both endsThey are not inverses. NETWORKDAYS(A2, WORKDAY(A2,30)) returns 31, not 30
Different weekend conventionPython's numpy.busday_offset and Excel's WORKDAY both default to Saturday and Sunday, but WORKDAY.INTL lets you change itSet the weekend code in both tools and state it
Date read as textAdding a number to text returns #VALUE!, or worse, appears to work and gives a wrong answer after an autocorrectCheck the alignment, or wrap it: =DATEVALUE(A2)+30
Regional date order03/04/2026 is 3 April in the UK and 4 March in the USType dates as =DATE(2026,4,3) or use ISO format in shared files
Time hidden in the cell=NOW()+30 keeps the time part, so comparisons against a plain date failUse =TODAY()+30, or wrap with =INT(...)
ToolAdd daysAdd monthsAdd working days
Excel=A2+30=EDATE(A2,1)=WORKDAY(A2,30)
Google Sheets=A2+30=EDATE(A2,1)=WORKDAY(A2,30)
Rd + 30seq(d, by="month", length.out=2)[2]loop, or bizdays package
Pythond + timedelta(days=30)d + relativedelta(months=1)np.busday_offset(d, 30, roll="forward")
JavaScriptd.setDate(d.getDate()+30)d.setMonth(d.getMonth()+1)loop over days
SQL ServerDATEADD(day,30,d)DATEADD(month,1,d)calendar table join

Note the JavaScript row: setMonth does not clamp, so 31 January plus one month gives 3 March, not 28 February. That is the single biggest disagreement in this table.

8.5 Charting dates in Excel

  1. Put your milestone names in one column and their calculated dates in the next.
  2. Select both columns, then Insert → Charts → Bar for a simple timeline, or a Scatter chart if you want the dates spaced by their real gaps.
  3. Right click the date axis, choose Format Axis, and set the bounds as dates rather than numbers, otherwise Excel shows serial numbers on the axis.
  4. Set the axis number format to dd mmm so the labels stay readable when the chart is narrow.
  5. For a Gantt style bar, plot the start date as a series with no fill and the duration in days as the visible bar on top of it.

Chart 2 in Section 2 of this page already draws the common offsets from your start date, which is usually quicker than rebuilding it in Excel.

8.6 Excel errors you will probably hit

Excel showsWhyFix
46294 instead of a dateThe cell is formatted as General or NumberSet the number format to Short Date, or press Ctrl+Shift+3
#VALUE!The start cell holds text that looks like a dateUse =DATEVALUE(A2)+30, or retype the date so it right aligns
#NUM!The result is before 1 January 1900 or after 31 December 9999Check for a large negative number of days
#####The column is too narrow to show the formatted dateDouble click the column border to widen it
#NAME? from WORKDAY.INTLVery old Excel versions do not have itUse WORKDAY with a Saturday and Sunday weekend, or upgrade
00 January 1900The start cell is blank, so it is read as zeroGuard with =IF(A2="","",A2+30)
Answer is one day outThe document counts the start day as day 1Use =A2+30-1 and note the convention in the sheet
Answer changes every morningThe formula uses TODAY() or NOW()Paste the answer as a value once it is agreed
Filled down formula points at the wrong holidaysThe holiday range was not lockedUse absolute references such as $D$2:$D$12

Google Sheets: every formula in this section works unchanged, including WORKDAY, WORKDAY.INTL, EDATE, EOMONTH and ISOWEEKNUM. The only real difference is that Sheets counts from 30 December 1899 and has no 1900 leap year bug, so the two disagree only on dates before March 1900.

📈 9. How Do You Add Days to a Date in R?

In R a Date object is stored as a number of days since 1 January 1970, so adding days to a date in R is plain addition: as.Date("2026-08-30") + 30. Everything harder than that, meaning calendar months, business days and the end of month clamp, needs a few extra lines, and they are all in the script below. It uses base R only, so there is nothing to install, and the behaviour of every function is documented in the base R date reference.

Copy the whole block. It runs top to bottom in RStudio, VS Code or plain Rscript. Change only the five lines in the marked block to use your own dates.

9.1 The complete script

R, base only, saves add_days_plot.png

# ============================================================
# Add days to a date, complete worked example
# Base R only. Prints a plain-English verdict and saves one
# 300 dpi figure called add_days_plot.png
# ============================================================

# ---- 1. YOUR DATA: change only these five lines -------------
start_date    <- as.Date("2026-08-30")   # start date
days_to_add   <- 30                      # whole days, negative to subtract
months_to_add <- 0                       # calendar months, clamped
business_only <- FALSE                   # TRUE skips weekends and holidays
holidays      <- as.Date(c("2026-09-07"))
# -------------------------------------------------------------

# Alternative: read a column of start dates from a CSV
# dat <- read.csv("dates.csv", stringsAsFactors = FALSE)
# dat <- dat[!is.na(dat$start), ]          # drop missing values
# start_date <- as.Date(dat$start[1])

add_months <- function(d, k) {
  lt  <- as.POSIXlt(d)
  tot <- lt$mon + k
  y   <- lt$year + 1900 + tot %/% 12
  m   <- tot %% 12 + 1
  last <- as.integer(format(seq(as.Date(sprintf("%04d-%02d-01", y, m)),
                                by = "month", length.out = 2)[2] - 1, "%d"))
  as.Date(sprintf("%04d-%02d-%02d", y, m, min(lt$mday, last)))
}

is_workday <- function(d) {
  wd <- as.integer(format(d, "%u"))        # 1 = Monday ... 7 = Sunday
  wd <= 5 & !(d %in% holidays)
}

stepped <- add_months(start_date, months_to_add)
clamped <- as.integer(format(stepped, "%d")) != as.integer(format(start_date, "%d"))

if (business_only) {
  step <- if (days_to_add >= 0) 1 else -1
  d <- stepped; counted <- 0
  while (counted < abs(days_to_add)) {
    d <- d + step
    if (is_workday(d)) counted <- counted + 1
  }
  result <- d
} else {
  result <- stepped + days_to_add
}

span     <- as.integer(result - start_date)
all_days <- seq(start_date + 1, start_date + abs(span), by = "day")
if (span < 0) all_days <- seq(start_date - abs(span), start_date - 1, by = "day")
wd       <- as.integer(format(all_days, "%u"))
weekend  <- sum(wd > 5)
hol_hits <- sum(wd <= 5 & all_days %in% holidays)
working  <- length(all_days) - weekend - hol_hits

cat("Start date      :", format(start_date, "%A %d %B %Y"), "\n")
cat("Added           :", months_to_add, "months and", days_to_add,
    if (business_only) "business days" else "calendar days", "\n")
cat("Result date     :", format(result, "%A %d %B %Y"), "\n")
cat("Calendar span   :", span, "days\n")
cat("Working days    :", working, "\n")
cat("Weekend days    :", weekend, "\n")
cat("Holidays skipped:", hol_hits, "\n")
cat("Day of year     :", as.integer(format(result, "%j")), "\n")
cat("ISO week number :", as.integer(format(result, "%V")), "\n")
if (clamped) cat("NOTE: the day of the month was clamped to the last day of the target month.\n")
cat("\nVERDICT: the result date is", abs(span), "calendar days",
    if (span >= 0) "after" else "before",
    "the start date, and it lands on a", format(result, "%A"), "\n")

# ---- 2. FIGURE: one 300 dpi PNG -----------------------------
offsets <- c(7, 14, 30, 45, 60, 90, 180, 365)
dates   <- start_date + offsets
labs    <- format(dates, "%d %b %Y")
cols    <- ifelse(offsets == days_to_add, "#16a34a", "#93c5fd")

png("add_days_plot.png", width = 9, height = 5, units = "in", res = 300)
par(mar = c(4.5, 6, 3.5, 2))
bp <- barplot(rev(offsets), horiz = TRUE, col = rev(cols), border = "#1e3a8a",
              names.arg = rev(paste(offsets, "days")), las = 1, xlim = c(0, 430),
              xlab = paste("Days added to", format(start_date, "%d %B %Y")),
              main = "Where common day offsets land", col.main = "#1e3a8a")
text(rev(offsets) + 8, bp, rev(labs), adj = 0, cex = 0.85, col = "#1f2937")
dev.off()
cat("\nSaved add_days_plot.png at 300 dpi\n")

9.2 What each part of the script does

LinesWhat it doesWhy it matters
The five input linesSet the start date, the days, the months, the business day switch and the holiday listThe only lines you should ever need to edit
as.Date("2026-08-30")Parses an ISO date into a Date objectAlways use ISO format here. Other formats need an explicit format= argument
add_months()Adds calendar months and clamps the day to the last valid dayBase R has no month arithmetic, so this is the piece people usually get wrong
is_workday()Returns TRUE when a date is neither a weekend day nor a listed holidayformat(d, "%u") gives 1 for Monday through 7 for Sunday, which is stable across locales
while loopSteps one day at a time until the required number of working days has been countedBase R has no WORKDAY equivalent, so counting is the honest way to do it
stepped + days_to_addThe plain calendar day additionThis one line is the whole answer when business mode is off
seq(..., by = "day")Builds every date in the span so the weekend and holiday counts can be madeCounting by iteration avoids the divide by 7 approximation
format(result, "%j") and "%V"Day of year and ISO 8601 week number%V is the ISO week. Do not use %W, which uses a different rule
cat(...) blockPrints the plain-English verdictReading the answer as a sentence catches errors a number never will
png(..., res = 300)Saves one publication-ready figure300 dpi is the usual minimum for print and for slides

9.3 What the figure shows

The script writes add_days_plot.png to your working directory. It is a horizontal bar chart of the common day offsets, 7 through 365, with the resulting calendar date printed at the end of each bar. The bar matching the number of days you actually asked for is drawn in green so it stands out from the rest.

Where common day offsets land 7 days06 Sep 202614 days13 Sep 202630 days29 Sep 202645 days14 Oct 202660 days29 Oct 202690 days28 Nov 2026180 days26 Feb 2027365 days30 Aug 2027 Days added to 30 August 2026
The figure R and Python both produce: common day offsets from the start date, with the resulting date labelled and your own offset highlighted in green.

Read it as a sanity check rather than as a result. If your requested offset lands somewhere that looks wrong relative to its neighbours, you have almost certainly typed the wrong number of days.

9.4 Problems and fixes

SymptomCauseFix
character string is not in a standard unambiguous formatThe date was not in ISO formUse as.Date("30/08/2026", format = "%d/%m/%Y")
Adding a number gives a number, not a dateThe object is numeric, not a DateWrap it: as.Date(x, origin = "1970-01-01")
The weekday name is in the wrong languageThe system locale is not EnglishRun Sys.setlocale("LC_TIME", "C") before formatting
The while loop never endsEvery day of the week is on the holiday list, or the weekend rule excludes all seven daysCheck the holiday vector and make sure at least one weekday is workable
Month arithmetic returns the wrong dayNaive d + 30 was used instead of add_months()Use the helper, which clamps to the last valid day
%V gives 53 for early JanuaryThat is correct ISO behaviourReport the ISO year with it using format(d, "%G")
The PNG is blankdev.off() was not reached because of an error above itRun the script top to bottom in one go, then check the console

9.5 One-liners worth remembering

TaskR code
Add 30 daysas.Date("2026-08-30") + 30
Subtract 30 daysas.Date("2026-08-30") - 30
Add 4 weeksas.Date("2026-08-30") + 7 * 4
Add 1 calendar monthseq(as.Date("2026-08-30"), by = "month", length.out = 2)[2]
Add 1 yearseq(as.Date("2026-08-30"), by = "year", length.out = 2)[2]
Name the weekdayweekdays(as.Date("2026-09-29"))
Days between two datesas.integer(as.Date("2026-09-29") - as.Date("2026-08-30"))
Every date in a spanseq(d1, d2, by = "day")
Count weekdays in a spansum(as.integer(format(seq(d1, d2, by = "day"), "%u")) <= 5)
Today plus 30 daysSys.Date() + 30
With lubridate, add a month safelylubridate::add_with_rollback(d, months(1))

📈 10. How Do You Add Days to a Date in Python?

Adding days to a date in Python is a one-liner with timedelta: date(2026, 8, 30) + timedelta(days=30). What timedelta deliberately does not have is a month unit, because a month has no fixed length. The rule is set out in the timedelta documentation. The script below adds the month arithmetic, the end of month clamp and a business day path, and it produces exactly the same numbers and the same figure as the R script above.

Packages used: datetime and calendar from the standard library, numpy for the business day offset, and matplotlib for the figure. Install the two that are not built in with:
pip install numpy matplotlib

10.1 The complete script

Python 3, saves add_days_plot.png

# ============================================================
# Add days to a date, complete worked example
# Prints a plain-English verdict and saves one 300 dpi figure
# ============================================================
from datetime import date, timedelta
import calendar
import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt

# ---- 1. YOUR DATA: change only these five lines -------------
start_date = date(2026, 8, 30)   # start date, year, month, day
days_to_add = 30                 # whole days to add, negative to subtract
months_to_add = 0                # calendar months, clamped at end of month
business_only = False            # True skips weekends and holidays
holidays = ["2026-09-07"]        # ISO dates to skip in business mode
# -------------------------------------------------------------

# Alternative: read a column of start dates from a CSV
# import pandas as pd
# df = pd.read_csv("dates.csv", parse_dates=["start"])
# df = df.dropna(subset=["start"])          # drop missing values
# start_date = df["start"].iloc[0].date()

hol = np.array(holidays, dtype="datetime64[D]")

def add_months(d, k):
    """Add k calendar months, clamping the day to the last valid day."""
    total = d.month - 1 + k
    y = d.year + total // 12
    m = total % 12 + 1
    return date(y, m, min(d.day, calendar.monthrange(y, m)[1]))

stepped = add_months(start_date, months_to_add)
clamped = (stepped.day != start_date.day)

if business_only:
    result = np.busday_offset(np.datetime64(stepped, "D"), days_to_add,
                              roll="forward", holidays=hol).astype("datetime64[D]").astype(date)
else:
    result = stepped + timedelta(days=days_to_add)

span = (result - start_date).days
all_days = [start_date + timedelta(days=i) for i in range(1, abs(span) + 1)]
weekend = sum(1 for d in all_days if d.weekday() >= 5)
hol_hits = sum(1 for d in all_days if d.weekday() < 5 and str(d) in holidays)
working = len(all_days) - weekend - hol_hits

print("Start date      :", start_date.strftime("%A %d %B %Y"))
print("Added           :", months_to_add, "months and", days_to_add,
      "business days" if business_only else "calendar days")
print("Result date     :", result.strftime("%A %d %B %Y"))
print("Calendar span   :", span, "days")
print("Working days    :", working)
print("Weekend days    :", weekend)
print("Holidays skipped:", hol_hits)
print("Day of year     :", result.timetuple().tm_yday)
print("ISO week number :", result.isocalendar()[1])
if clamped:
    print("NOTE: the day of the month was clamped to the last day of the target month.")
print()
if span > 0:
    print("VERDICT: the result date is", span, "calendar days after the start date,",
          "and it lands on a", result.strftime("%A") + ".")
else:
    print("VERDICT: the result date is", abs(span), "calendar days before the start date.")

# ---- 2. FIGURE: one 300 dpi PNG -----------------------------
offsets = [7, 14, 30, 45, 60, 90, 180, 365]
dates = [start_date + timedelta(days=o) for o in offsets]
labels = [d.strftime("%d %b %Y") for d in dates]
colors = ["#16a34a" if o == days_to_add else "#93c5fd" for o in offsets]

fig, ax = plt.subplots(figsize=(9, 5))
bars = ax.barh([str(o) + " days" for o in offsets], offsets, color=colors,
               edgecolor="#1e3a8a", linewidth=0.8)
for bar, lab in zip(bars, labels):
    ax.text(bar.get_width() + 5, bar.get_y() + bar.get_height() / 2, lab,
            va="center", fontsize=9, color="#1f2937")
ax.set_xlabel("Days added to " + start_date.strftime("%d %B %Y"))
ax.set_title("Where common day offsets land", fontsize=13, color="#1e3a8a")
ax.set_xlim(0, 430)
ax.invert_yaxis()
ax.spines[["top", "right"]].set_visible(False)
fig.tight_layout()
fig.savefig("add_days_plot.png", dpi=300)
print("\nSaved add_days_plot.png at 300 dpi")

10.2 What each part of the script does

LinesWhat it doesWhy it matters
The five input linesStart date, days, months, business day switch and holiday listThe only lines you should ever need to edit
date(2026, 8, 30)Builds the date from year, month and day directlySafer than parsing a string, which can be read in the wrong order or as UTC
add_months()Adds calendar months and clamps the day with calendar.monthrangetimedelta has no month unit on purpose, so this has to be written out
timedelta(days=...)The plain calendar day additionHandles month and year rollover, leap years included, with no extra code
np.busday_offsetAdds business days, skipping weekends and the holiday arrayThe direct equivalent of Excel's WORKDAY
roll="forward"Moves a start date that is itself a weekend on to the next working day firstWithout it a weekend start raises an error
all_days listEvery date in the span, used for the weekend and holiday countsCounting beats the divide by 7 approximation, which is wrong at the edges
result.isocalendar()[1]The ISO 8601 week numberMatches R's %V and Excel's ISOWEEKNUM exactly
print blockPrints the plain-English verdictThe sentence is what you paste into an email
fig.savefig(dpi=300)Saves one publication-ready figureSame chart, same colours and same labels as the R version

10.3 What the figure shows

The chart written to add_days_plot.png is identical in content to the R figure shown in section 9.3: one horizontal bar per common offset, the resulting date printed at the end of the bar, and your own offset drawn in green. Run both scripts on the same inputs and the two PNGs will carry the same dates.

10.4 Problems and fixes

SymptomCauseFix
TypeError: unsupported operand type(s) for +: 'datetime.date' and 'int'A bare integer was added to a dateWrap it: d + timedelta(days=30)
ValueError: day is out of range for monthA day of 29, 30 or 31 was forced into a shorter monthUse the add_months helper, which clamps with calendar.monthrange
The result is one day earlier than expectedThe date was parsed from a string and read as UTC midnightBuild it with date(y, m, d), or use datetime.strptime(...).date()
numpy.busday_offset raises on the start dateThe start date is a weekend or a holiday and no roll rule was givenPass roll="forward" or roll="backward"
Holidays are ignoredThe holiday list was passed as plain stringsConvert first: np.array(holidays, dtype="datetime64[D]")
Times keep appearing in the answerdatetime.now() was used instead of date.today()Use date.today(), or call .date() on the result
The figure never appearsNo display is available on a servermatplotlib.use("Agg") is already set at the top of the script

10.5 One-liners worth remembering

TaskPython code
Add 30 daysdate(2026, 8, 30) + timedelta(days=30)
Subtract 30 daysdate(2026, 8, 30) - timedelta(days=30)
Add 4 weeksd + timedelta(weeks=4)
Add 1 calendar monthd + relativedelta(months=1) from dateutil
Add 1 yeard + relativedelta(years=1)
Add 30 business daysnp.busday_offset(d, 30, roll="forward")
Name the weekdayd.strftime("%A")
Days between two dates(d2 - d1).days
Count business days in a spannp.busday_count(d1, d2)
Day of yeard.timetuple().tm_yday
Today plus 30 daysdate.today() + timedelta(days=30)
Add days to a pandas columndf["start"] + pd.Timedelta(days=30)
R and Python should agree exactly. Both scripts on this page use the same start date, the same holiday list, the same end of month clamp and the same ISO week rule. Run them on 30 August 2026 plus 30 calendar days and both print Tuesday 29 September 2026, 21 working days, 8 weekend days, 1 holiday, day of year 272 and ISO week 40. Excel's =A2+30 gives the same date. If they disagree, the cause is almost always a date parsed as text or a month added where days were meant.

📋 11. Reference Tables

11.1 Add days to a date: a ready reckoner from 30 August 2026

Days addedResult dateWeekdayDay of yearISO week
+131 Aug 2026Monday24336
+201 Sep 2026Tuesday24436
+302 Sep 2026Wednesday24536
+504 Sep 2026Friday24736
+706 Sep 2026Sunday24936
+1009 Sep 2026Wednesday25237
+1413 Sep 2026Sunday25637
+1514 Sep 2026Monday25738
+2120 Sep 2026Sunday26338
+2827 Sep 2026Sunday27039
+3029 Sep 2026Tuesday27240
+4514 Oct 2026Wednesday28742
+6029 Oct 2026Thursday30244
+9028 Nov 2026Saturday33248
+10008 Dec 2026Tuesday34250
+12028 Dec 2026Monday36253
+18026 Feb 2027Friday578
+27027 May 2027Thursday14721
+36530 Aug 2027Monday24235
+73029 Aug 2028Tuesday24235

Conclusion: read the weekday column before you commit to a date. Five of these results land on a weekend, and a weekend deadline is usually a Monday deadline in practice.

11.2 Days in each month and the running day of year

MonthDays, common yearDays, leap yearDay of year of the 1st, commonDay of year of the 1st, leap
January313111
February28293232
March31316061
April30309192
May3131121122
June3030152153
July3131182183
August3131213214
September3030244245
October3131274275
November3030305306
December3131335336

Conclusion: only July and August are two 31 day months in a row, which is why a 62 day span is possible only across that pair. Everywhere else 30 days and 31 days alternate.

11.3 Adding 30 days against adding one calendar month, every month of 2026

Start date+30 days+1 monthSame?Gap in days
15 Jan 202614 Feb 202615 Feb 2026No1
15 Feb 202617 Mar 202615 Mar 2026No2
15 Mar 202614 Apr 202615 Apr 2026No1
15 Apr 202615 May 202615 May 2026Yes0
15 May 202614 Jun 202615 Jun 2026No1
15 Jun 202615 Jul 202615 Jul 2026Yes0
15 Jul 202614 Aug 202615 Aug 2026No1
15 Aug 202614 Sep 202615 Sep 2026No1
15 Sep 202615 Oct 202615 Oct 2026Yes0
15 Oct 202614 Nov 202615 Nov 2026No1
15 Nov 202615 Dec 202615 Dec 2026Yes0
15 Dec 202614 Jan 202715 Jan 2027No1

Conclusion: starting on the 15th, the two answers match only when the following month has exactly 30 days. In every 31 day month they differ by one day, and in February they differ by two or three.

11.4 Business days converted to calendar days, from 30 August 2026

Business daysResult dateWeekdayCalendar days usedRough estimate, days × 7 ÷ 5
131 Aug 2026Monday11
504 Sep 2026Friday57
1011 Sep 2026Friday1214
1518 Sep 2026Friday1921
2025 Sep 2026Friday2628
2128 Sep 2026Monday2929
3009 Oct 2026Friday4042
4530 Oct 2026Friday6163
6020 Nov 2026Friday8284
9001 Jan 2027Friday124126
12012 Feb 2027Friday166168
18007 May 2027Friday250252
25013 Aug 2027Friday348350

Conclusion: the rough estimate is close but almost never exact, because it cannot know where the weekends fall. Use it for planning and the real count for anything contractual.

11.5 Common payment and notice terms, counted from 30 August 2026

TermWhat it usually meansCalendar day resultBusiness day result
Net 7payment due 7 days after the invoice date06 Sep 202608 Sep 2026
Net 14payment due in two weeks13 Sep 202617 Sep 2026
Net 15half month terms, common in the US14 Sep 202618 Sep 2026
Net 30the standard commercial term29 Sep 202609 Oct 2026
Net 45extended terms for larger buyers14 Oct 202630 Oct 2026
Net 60common in retail supply chains29 Oct 202620 Nov 2026
Net 90long terms, often disputed28 Nov 202601 Jan 2027
14 day noticea short contractual notice period13 Sep 202617 Sep 2026
30 day noticethe most common notice period29 Sep 202609 Oct 2026
90 day probationa typical probation period28 Nov 202601 Jan 2027
180 day optiona half year option window26 Feb 202707 May 2027

Conclusion: the two right hand columns are the reason terms get disputed. Net 90 counted as calendar days is 28 November 2026, and counted as working days it is 1 January 2027, five weeks later.

11.6 How far the weekday moves when you add days

Days addedDays added mod 7Weekday shiftSunday start becomes
11forward 1Monday
22forward 2Tuesday
33forward 3Wednesday
55forward 5Friday
70none, same weekdaySunday
103forward 3Wednesday
140none, same weekdaySunday
210none, same weekdaySunday
280none, same weekdaySunday
302forward 2Tuesday
313forward 3Wednesday
453forward 3Wednesday
604forward 4Thursday
906forward 6Saturday
1805forward 5Friday
3651forward 1Monday
3662forward 2Tuesday
7302forward 2Tuesday

Conclusion: if you add a multiple of 7 and the weekday changes, you have made an arithmetic error. This is the cheapest check available on any date calculation.

11.7 Leap years, 2020 to 2060

YearLeap year?Days in the yearDays in February
2020Yes36629
2024Yes36629
2028Yes36629
2032Yes36629
2036Yes36629
2040Yes36629
2044Yes36629
2048Yes36629
2052Yes36629
2056Yes36629
2060Yes36629
1900No36528
2000Yes36629
2100No36528

Conclusion: the last three rows are the century rule. 1900 and 2100 are not leap years because they do not divide by 400, and Excel is wrong about 1900 by design, for backward compatibility with an old spreadsheet.

📈 12. Example Results

1
TEXTBOOK CASE

Thirty days from an invoice date

The plain case that the whole page is built on.

An invoice is issued on 30 August 2026 with net 30 terms counted in calendar days. When is payment due?

+30 calendar daysstart Sundayresult Tuesday21 working daysday of year 272
ItemValueNote
Start date30 August 2026Sunday, the invoice date
Days added30Calendar days, weekends included
Result date29 September 2026Tuesday
Calendar span30 daysSame as the days added
Working days in the span21Weekdays only
Weekend days in the span8Four Saturdays, four Sundays
Day of year272Out of 365 in 2026
ISO week number40Week starting Monday 28 September
+ 30 calendar days30 Aug 2026Sunday29 Sep 2026Tuesday30 days = 21 working days + 8 weekend days + 1 holiday
Thirty days forward from a Sunday lands on a Tuesday, because 30 divided by 7 leaves a remainder of 2.

What it means: The answer is Tuesday 29 September 2026. Note that only 21 of those 30 days are working days, so if your finance team needs 5 working days to process the payment, the instruction has to go out by 22 September.

How to use it: Payment is due on Tuesday 29 September 2026, being 30 calendar days from the invoice date of 30 August 2026.

2
LONG SPAN

One full year, counted as 365 days

Why a year in days is not the same as a year on the calendar.

A licence starts on 30 August 2026 and runs for 365 days. Does it expire on the same date next year?

+365 daysresult Mondayweekday shifts by 1not a leap span
ItemValueNote
Start date30 August 2026Sunday
Days added365Calendar days
Result date30 August 2027Monday
Same calendar date?No365 days lands the day before 31 August 2027
Anniversary date30 August 2027What most people mean by one year
Weekday shiftforward 1365 mod 7 is 1
Leap day crossedNo2027 is not a leap year
ISO week number36Week starting Monday 30 August 2027
+ 365 days30 Aug 2026Sunday30 Aug 2027Monday365 days from a Sunday always lands on a Monday in a common year
Adding 365 days moves the weekday forward by exactly one, so the licence expires on a different weekday from the one it started on.

What it means: 365 days from 30 August 2026 is Monday 30 August 2027, which happens to be the anniversary date here because no leap day is crossed. Cross a 29 February and the two would differ by a day, which is exactly how annual renewals drift.

How to use it: The licence term of 365 days ends on Monday 30 August 2027. If an anniversary date is intended, write one year rather than 365 days.

3
SHORTEST CASE

Adding a single day

The case that exposes the start day counting rule.

A notice is served on Sunday 30 August 2026 and takes effect one day later. Which day is that?

+1 dayexclusive countingresult Mondayinclusive gives Sunday
ItemValueNote
Start date30 August 2026Sunday, the day of service
Days added1Calendar day
Result, start day not counted31 August 2026The default rule on this page
Result, start day counted as day 130 August 2026The same day the notice was served
Difference1 dayThe entire dispute in one row
Working day?YesMonday is a working day
Day of year243Out of 365
ISO week number36Week starting Monday 31 August
+ 1 day30 Aug 2026Sunday31 Aug 2026MondayOne day forward, but only if the start day is not counted
One day forward from Sunday is Monday under the default rule, and Sunday itself under inclusive counting.

What it means: This is the smallest possible calculation and it still has two defensible answers. Whenever a document says within one day, or by the next day, find out whether the day of service counts. The answer changes which day you have.

How to use it: The notice takes effect on Monday 31 August 2026, counting the day after service as day one.

4
MONTH END CLAMP

One month from 31 January

The borderline case where two reasonable methods disagree.

A subscription starts on 31 January 2026 and renews monthly. What is the first renewal date?

+1 monthclamped to 28 Feb+30 days gives 2 Martwo day gap
ItemValueNote
Start date31 January 2026Saturday
Add one calendar month28 February 2026Clamped, because 31 February does not exist
Add 30 days02 March 2026A different date entirely
Gap between the two methods2 daysIn a leap year it would be 1 day
Excel EDATE result28/02/2026Matches the clamp
JavaScript setMonth result03/03/2026Rolls forward instead of clamping
Is the clamp reversible?NoSubtracting a month from 28 February gives 28 January
Next renewal after that31 March 2026The original day of month returns when the month is long enough
+ 1 calendar month31 Jan 2026Saturday28 Feb 2026SaturdayThe 31st clamps to the last day of February
Adding one month to 31 January gives 28 February, while adding 30 days gives 2 March. Both are correct answers to different questions.

What it means: Almost every spreadsheet and database clamps, and JavaScript does not, which is why a web app and a report can quietly disagree by three days. If your billing runs on month ends, state the rule in the contract rather than leaving it to the software.

How to use it: The first renewal falls on 28 February 2026, the last day of the month, because the start date of 31 January has no equivalent in February.

5
EXTREME INPUT

Ten thousand days ahead

What a very large offset does, and why nothing breaks.

A geological survey plans a repeat measurement 10,000 days after the baseline survey on 30 August 2026.

+10000 daysabout 27.4 years7 leap days crossedresult 2054
ItemValueNote
Start date30 August 2026Sunday
Days added10000Calendar days
Result date15 January 2054Thursday
Years coveredabout 27.410000 divided by 365.25
Leap days crossed72028, 2032, 2036, 2040, 2044, 2048, 2052
Weekday shiftforward 410000 mod 7 is 4
Day of year15Out of 365 in that year
Still valid?YesThis calculator handles year 1 to year 9999
+ 10,000 days30 Aug 2026Sunday15 Jan 2054ThursdayAbout 27 years and 5 months, crossing 7 leap days
Large offsets are handled exactly, because the calculation is day counting rather than an approximation from years.

What it means: Notice that dividing 10,000 by 365 gives 27.40 years while dividing by 365.25 gives 27.38, and neither tells you the date. Only counting real days does, which is why every leap day between the two dates has to be included.

How to use it: The repeat survey is scheduled for 15 January 2054, 10,000 days after the baseline.

6
MISLEADING READING

Ninety days, or ninety working days

The case where the obvious reading of the number is wrong.

A contract gives a 90 day cure period. One party reads it as calendar days, the other as working days.

+90 calendar+90 business34 days apartdifferent years
ItemValueNote
Start date30 August 2026Sunday
90 calendar days28 November 2026Saturday, a weekend
90 business days01 January 2027Friday, a public holiday in many places
Difference between the two34 daysNearly five weeks
Calendar days used by the business count124Against 90 for the calendar count
Rough estimate, 90 x 7 / 5126 daysClose, but two days out here
Does either land on a working day?NeitherOne is a Saturday, one is New Year's Day
Which rule does this page use?Whichever you selectThe results table always names it
+ 90 business days30 Aug 2026Sunday01 Jan 2027FridayCompared with 28 November 2026 for 90 calendar days
Ninety calendar days ends on 28 November 2026 and ninety working days ends on 1 January 2027. The word missing from the contract is worth five weeks.

What it means: Worse, both results land on a non-working day, so a third rule is needed to decide whether the deadline rolls forward or backward. This is the single most common date dispute in commercial contracts, and it is entirely avoidable by writing calendar days or business days in the clause.

How to use it: The cure period expires on 28 November 2026 on a calendar day reading, or 1 January 2027 on a business day reading. Confirm which applies before relying on either.

7
INVALID INPUT

What the calculator does with bad input

How errors are reported rather than hidden.

A user types 30/08/2026 into a plain text field, enters 12.5 in the days box, and leaves the start date blank.

validation onno NaN shownfield level messagesnothing computed
ItemValueNote
Blank start dateBlockedAn inline message asks for a start date
Decimal days such as 12.5Rounded down to 12A date is a whole day, so half days are not accepted
Negative days typed in the days boxBlockedUse the Subtract direction instead
Text in the days boxBlockedAn inline message names the field
A holiday line that is not a dateSkipped and reportedThe count still runs on the valid lines
Result shownNothingThe result panel stays in its placeholder state
Download TXT buttonDisabledA file containing blanks is worse than no file
What you see insteadA message naming the fixNever a bare NaN or an empty box
invalid input, nothing computed30 Aug 2026Sunday30 Aug 2026SundayThe result panel stays on Press Calculate
Bad input never produces a silent wrong answer. Every rejected field gets a message under it naming what to change.

What it means: This matters more on a date calculator than on most tools, because a wrong date looks perfectly plausible. A number like 31 February would be visibly wrong, but 2 March instead of 28 February would not be, so the calculator refuses to guess.

How to use it: Fill in the start date, use whole numbers for the days, and choose the Subtract direction rather than typing a negative number.

8
APPLIED SCENARIO

Working backwards from a filing deadline

Subtraction is the same calculation in reverse.

A return must be filed by 15 April 2027. The team needs 21 working days to prepare it. When must the work start?

direction subtract21 business daysresult Wednesday29 calendar days
ItemValueNote
Deadline15 April 2027Thursday
Working days needed21Business day mode, Saturday and Sunday weekend
Start no later than17 March 2027Wednesday
Calendar days available29Between the start and the deadline
Weekend days in that span8Not available for work
Buffer if you add 5 more working days10 March 2027A safer start date
Direction usedSubtractThe same arithmetic, counted backwards
CheckAdd 21 working days backReturns 15 April 2027 exactly
21 working days of preparation17 Mar 2027Wednesday15 Apr 2027ThursdayCounted backwards from the filing deadline
Twenty one working days before 15 April 2027 is 17 March 2027, so the work has to be under way by then.

What it means: Always check a backwards calculation by running it forwards again. If adding 21 working days to your start date does not return the deadline exactly, your weekend or holiday settings differ between the two runs.

How to use it: Preparation must begin no later than 17 March 2027 to file by 15 April 2027, allowing 21 working days.

🧪 13. How Do You Get Your Input Numbers Right?

A date calculation is only as good as the two things you feed it: the start date and the counting rule. Both are read off a document, and both are read wrongly more often than people expect.

  1. Find the start date in the document, not in your memory. An invoice date, a service date and a receipt date are three different days, and contracts pick one of them deliberately.
  2. Check the date order before you type it. 03/04/2026 is 3 April in the UK, India and most of Europe, and 4 March in the United States. If the source is ambiguous, find another date in the same document with a day above 12, which settles the order immediately.
  3. Convert the date to ISO form as you go. Writing 2026-08-30 in your working notes removes the ambiguity permanently and matches what every tool on this page expects.
  4. Read the counting word. Days, working days, business days, clear days and calendar days are five different phrases and at least three different rules. Copy the exact phrase into your notes.
  5. Decide whether the start day counts. Look for the words from, after, within and inclusive. From and inclusive usually mean the start day counts. After usually means it does not.
  6. Get the right holiday list. Public holidays differ by country and often by region within a country. Use the list for the place where the obligation is performed, not where you are sitting.
  7. Check whether a weekend deadline rolls. Many rules move a deadline landing on a weekend or holiday to the next working day; some move it backwards instead. This calculator does not roll automatically, because the rule belongs to your document, not to the arithmetic.
  8. Watch the time zone if a time is attached. A deadline of midnight in one place is the previous afternoon in another. Dates alone have no time zone, which is usually a simplification in your favour, but not always.
  9. Write down which rule you used next to the answer. In three months you will remember the date and not the rule, and the rule is what makes the date defensible.
  10. Check the answer backwards. Subtract the same number of days from your result with the same settings. If you do not land back on the start date exactly, one of your settings changed between the two runs.
InputUnitTypical rangeWhere it comes from
Start dateCalendar dateYear 1 to year 9999The invoice, contract, letter or appointment card
DaysWhole days0 to 500,000The number written in the clause
WeeksWhole weeks0 to 70,000Medical follow ups and project plans
MonthsCalendar months0 to 12,000Subscriptions, tenancies, notice periods
YearsCalendar years0 to 2,000Warranties, licences, statutory limits
Weekend ruleDays of the week0 to 2 weekend daysThe working week of the place concerned
HolidaysList of dates0 to about 20 a yearThe official public holiday calendar

One input per field, whole numbers only, and dates in YYYY-MM-DD form in the holiday box.

Common mistakes when gathering the inputs:

  • Using today's date as the start date when the document names a different one.
  • Copying a date from a spreadsheet cell that was displaying a different format from the value it held.
  • Assuming the other party uses the same public holiday calendar.
  • Counting a half day shutdown as a full holiday, or the reverse.
  • Typing 12.5 days because the plan said two and a half weeks, when what you needed was 18 days.
  • Mixing months and days in the same clause, such as three months and 15 days, without saying which is applied first.

🎯 14. When Should You Use This Add Days to Date Calculator?

Use this add days to date calculator when:

  • ✓ You need the exact date a fixed number of days after or before another date.
  • ✓ The number is written in days, weeks, months or years, or a mixture of them.
  • ✓ You need to skip weekends, and possibly a list of public holidays.
  • ✓ You need the weekday, the day of the year or the ISO week number of the answer.
  • ✓ You are working backwards from a deadline to find a start date.
  • ✓ You want the same calculation written out for Excel, R or Python so you can repeat it in bulk.

Do not use it when:

  • ✗ You need the number of days between two dates you already have. That is the reverse calculation.
  • ✗ Times of day matter, for example a deadline at 17:00 across time zones.
  • ✗ You need a non-Gregorian calendar such as the Hijri, Hebrew or Japanese imperial calendar.
  • ✗ You need the deadline to roll automatically when it lands on a weekend, because the rolling rule belongs to your document.
  • ✗ You need legal certainty on a limitation date. Use this to prepare, then have the date confirmed.
  • ✗ Dates before 1583, where the change from the Julian to the Gregorian calendar makes any single answer contestable.

Four worked situations:

  1. Invoice terms. Net 30 from an invoice dated 30 August 2026 is 29 September 2026 in calendar days. Use calendar day mode.
  2. Shipping promise. Ten working days from the same date is 11 September 2026. Use business day mode with your own holiday list.
  3. Medical follow up. Six weeks after an appointment keeps the same weekday, because 42 divides by 7. Use the weeks field.
  4. Tenancy notice. Two months from 31 January 2026 is 31 March 2026, because March is long enough to keep the 31st. Use the months field, not 60 days.
Which tool do you actually need? If you have two dates and want the gap, you need a date difference calculator. If you have a date of birth and want an age, you need an age calculator. If you have a start date and a count, you are in the right place. The rest of the free calculators on StatsUnlock cover the statistics, ecology and everyday maths side.

🔧 15. Troubleshooting and Common Errors

The answer is one day out from what I expected

Cause: the start day counting rule. Fix: open Advanced options and switch Count the start day as day 1. That single setting moves every answer by exactly one day, and it is the cause of the great majority of off by one complaints.

Another website gives a different date

Cause: a different convention, not a different arithmetic. Fix: check three things in order: whether the start day counts, whether the other site used months where you used days, and whether it applied a weekend roll. This page uses exclusive counting by default, clamps month ends to the last valid day, and never rolls a weekend result automatically.

Adding one month did not give the same day of the month

Cause: the end of month clamp. Fix: nothing is wrong. 31 January plus one month has to be 28 or 29 February, because 31 February does not exist. The results table says when a clamp has been applied. If you wanted 30 days, use the days field instead.

Business day mode gives a much later date than I expected

Cause: working days are about 40 percent slower than calendar days. Fix: nothing is wrong. Thirty working days is roughly 42 calendar days, and ninety working days is roughly 126. If your document means calendar days, switch the mode.

My holiday list seems to be ignored

Cause: either the mode is set to calendar days, or the dates are not in YYYY-MM-DD form, or the holidays fall on weekend days. Fix: switch to business day mode, use ISO dates one per line, and remember that a holiday already falling on a Saturday changes nothing because that day is skipped anyway.

The Calculate button does nothing

Cause: a field failed validation. Fix: look for an orange message under one of the inputs. The most common cases are an empty start date, a non numeric entry in one of the four offset boxes, and every offset left at zero.

I typed a negative number of days and it was rejected

Cause: the direction is a separate control on purpose. Fix: set Direction to Subtract and enter the number as a positive value. Keeping the sign in one place stops the double negative errors that make a backwards calculation silently go forwards.

My spreadsheet shows 46294 instead of a date

Cause: the cell number format. Fix: the formula is right and the value is right. Select the cell and set the number format to Short Date, or press Ctrl+Shift+3. Excel stores dates as day numbers and 46294 is 29 September 2026.

Excel returns #VALUE! when I add days

Cause: the start cell contains text that looks like a date. Fix: a real date right aligns on its own. If yours is left aligned, retype it, or wrap the formula as =DATEVALUE(A2)+30. Text dates are the most common spreadsheet date fault by a wide margin.

The two charts do not appear

Cause: the Chart.js file was blocked, or the calculator has not been run. Fix: press Calculate first. If the charts still do not draw, allow the cdnjs script in your browser or network settings. The tables, the result panel and both downloads work without it.

The date jumped by a day when I opened the file elsewhere

Cause: a date parsed as text in a program that reads it as UTC midnight. Fix: build dates from year, month and day parts rather than from a string, which is what the R and Python scripts on this page do deliberately. In JavaScript use new Date(y, m, d), never new Date("2026-08-30").

Which formula variant does this calculator use?

Answer: exclusive day counting by default, so day 1 is the day after the start date. Months and years are added with an end of month clamp, matching Excel's EDATE and Python's relativedelta. Business days skip your chosen weekend days and any listed holiday, matching Excel's WORKDAY. Years and months are applied before weeks and days.

16. Assumptions and Limitations

Assumptions

  1. The proleptic Gregorian calendar applies throughout. If it fails, dates before 1583 shift by up to 13 days, because the calendar reform was adopted in different countries in different years.
  2. Day 1 is the day after the start date unless you say otherwise. If it fails, every result is one day late.
  3. Months are added with an end of month clamp. If your document expects a roll forward instead, results from the 29th, 30th and 31st are one to three days early.
  4. Years and months are applied before weeks and days. If your document expects the other order, mixed offsets can differ by a day or two around month ends.
  5. The weekend is the two days you selected, every week. If it fails, for example where a working week varies by season, the business day count drifts.
  6. The holiday list you pasted is complete and correct. If it fails, business day results are early by one day for each missing holiday.
  7. Dates carry no time of day. If it fails, a deadline expressed as a time in another time zone can fall on a different date.

Limitations

  • It does not roll a weekend or holiday result to the next working day, because that rule belongs to your contract. Read the result, then apply your own rule. A date difference calculator will confirm the new gap, and the StatsUnlock calculator library is where those sibling tools are published as they go live.
  • It has no built-in holiday calendar. Public holidays vary by country and region and change from year to year, so they have to be pasted in. An official government holiday list is the right source.
  • It works only in the Gregorian calendar. For Hijri, Hebrew, Persian or Japanese imperial dates you need a calendar conversion tool.
  • It handles whole days only. For hours and minutes across time zones you need a time zone calculator.
  • It gives no legal advice. Limitation periods, court deadlines and statutory notice periods have their own counting rules that can differ from every convention on this page.
  • It does not compare two dates. To find the gap between dates you already have, use a date difference calculator rather than working backwards from this one.
  • Very large offsets are capped at year 9999, which is a limit of the date representation rather than of the arithmetic.

🏁 17. Conclusion

Run the calculator above and this conclusion will fill in with your own dates.

To add days to a date is the simplest calculation on this whole site, and it is still the one that produces the most disputes. The arithmetic never fails. What fails is the reading of the question: whether the start day counts, whether the days are calendar days or working days, and whether the document meant days at all when it wrote a number that looks like a month.

The habit worth building is to say the answer out loud with its weekday attached. Thirty days from Sunday 30 August 2026 is Tuesday 29 September 2026. A wrong weekday sounds wrong immediately, which is why naming it catches errors that staring at the number never will. Adding a multiple of seven should never change the weekday at all, and that free check has saved more deadlines than any amount of double entry.

The second habit is to record the rule beside the date. A date on its own is an assertion. A date with the words thirty calendar days, start day not counted, weekend Saturday and Sunday beside it is a calculation anyone can check and nobody can argue with. It takes one extra line in an email and it removes an entire category of argument later.

Where a result lands on a weekend or a public holiday, stop and decide what happens next before you rely on the date. This calculator deliberately does not move it for you, because moving it forward and moving it backward are both real conventions and only your document knows which one applies. Getting that agreed in advance costs a two line email; getting it wrong costs a missed deadline.

Use the calculator at the top of this page whenever you need to add days to a date, switch to business day mode when weekends should not count, and copy the Excel, R or Python version from Sections 8 to 10 when you need to run the same calculation over a whole column of dates rather than one.

18. Frequently Asked Questions

Q1. How do I add days to a date?

Take the start date and count forward the number of days, rolling into the next month when you run past its last day. This calculator does it instantly: enter the start date, type the number of days, and press Calculate. It returns the result date, the weekday it lands on, and the day of the year.

Q2. How to add days to a date in Excel?

Excel stores dates as serial numbers, so plain addition works. With the start date in A2, type =A2+30 and format the cell as a date. To skip weekends use =WORKDAY(A2,30). To add months instead of days use =EDATE(A2,3).

Q3. What is the Excel formula to add days to a date?

The formula is =A2+n, where A2 holds the start date and n is the number of days. For 7 days it is =A2+7. If the answer shows as a number like 45678, the cell is formatted as General. Change the number format to Short Date.

Q4. How to add 7 days to a date in Excel?

Use =A2+7 with the start date in A2, then format the result as a date. If you want the next working day instead, use =WORKDAY(A2,7), which skips Saturdays and Sundays and can also skip a list of holidays.

Q5. How to add 30 days to a date in Excel?

Use =A2+30. Note that 30 days is not the same as one month: 31 January plus 30 days is 2 March in a normal year. If you mean one calendar month, use =EDATE(A2,1) instead, which returns 28 or 29 February.

Q6. How to add 90 days to a date in Excel?

Use =A2+90 for 90 calendar days, which is the usual reading of a 90 day payment or notice term. Use =WORKDAY(A2,90) if the contract counts working days only, because 90 working days is roughly 126 calendar days.

Q7. How do I add 180 days to a date?

Enter the start date in this calculator, type 180 in the days field and press Calculate. In Excel the formula is =A2+180. Adding 180 days is close to six months but not identical, because six calendar months can be 181 to 184 days depending on which months they are.

Q8. How do I add working days to a date in Excel?

Use =WORKDAY(start, days, holidays), for example =WORKDAY(A2,10,$D$2:$D$12). It skips Saturdays and Sundays plus any dates in the holiday range. If your weekend is not Saturday and Sunday, use WORKDAY.INTL with a weekend code.

Q9. How do I add days to a date in JavaScript?

Create a date, then use setDate with the current date plus the offset: const d = new Date(2026, 7, 30); d.setDate(d.getDate() + 30). JavaScript rolls the month and year over for you. Build the date with new Date(y, m, d) rather than parsing a string, which is read as UTC.

Q10. How do I add days to a date in Python?

Use datetime.timedelta: from datetime import date, timedelta; date(2026, 8, 30) + timedelta(days=30). For business days use numpy.busday_offset, and for calendar months use dateutil.relativedelta, because timedelta has no month unit.

Q11. How do I add days to a date in R?

A Date object in R is a number of days, so you simply add: as.Date("2026-08-30") + 30. For months use seq(start, by = "month", length.out = 2)[2] or the lubridate package, which handles the end of month cases.

Q12. Does adding 30 days give the same answer as adding one month?

Usually not. Months have 28 to 31 days, so 30 days lands on a different date from one calendar month in every month except April, June, September and November. This calculator keeps days and months as separate fields so you can pick the one your contract actually means.

Q13. What happens when I add a month to 31 January?

There is no 31 February, so the result is clamped to the last day of the target month: 28 February, or 29 February in a leap year. Almost every spreadsheet and programming library does the same. The calculator tells you when a clamp has happened.

Q14. Does the calculator count the start day itself?

By default it does not. Adding 1 day to Monday gives Tuesday. If your contract counts the start day as day one, switch on Count the start day as day 1 in Advanced options, which shifts the answer back by one day.

Q15. How does business day mode handle holidays?

Paste your holiday dates, one per line, into the holidays box. In business day mode the calculator steps forward one day at a time, skipping weekend days and any listed holiday, until it has counted the number of working days you asked for.

Q16. Can I subtract days from a date?

Yes. Set the direction to Subtract and the calculator counts backwards, handling month and year boundaries for you. This is how you work out a deadline: if a filing is due on 15 April and you need it ready 21 working days earlier, subtract 21 in business day mode.

Q17. Does the calculator handle leap years?

Yes. It uses real month lengths and the full leap year rule, so a year is a leap year when it divides by 4, except century years, which must divide by 400. That is why 2000 was a leap year and 1900 was not.

Q18. Why does my spreadsheet give a different date from this calculator?

The usual causes are a different day count convention, a start day counted as day one, or Excel's 1900 date system, which treats 29 February 1900 as a real date. Check whether you added 30 days or one month, and whether your formula used WORKDAY rather than plain addition.

Q19. What is the ISO week number shown in the results?

The ISO 8601 week number counts weeks that start on Monday, where week 1 is the week containing the first Thursday of the year. It runs from 1 to 52 or 53. Many project plans and payroll systems refer to weeks by this number rather than by date.

Q20. Is this add days to date calculator free?

Yes, it is completely free, needs no sign up, and runs entirely in your browser. Nothing you type is uploaded, so you can safely enter contract dates and holiday lists. You can export your result as a text file or a printable PDF.

📑 19. Cite This Tool

APA 7th edition
StatsUnlock. (2026). Add days to date calculator [Interactive date tool]. https://statsunlock.com/add-days-to-date-calculator/
BibTeX
@misc{statsunlock_adddays_2026, title={Add Days to Date Calculator}, author={{StatsUnlock}}, year={2026}, note={Interactive date tool}, url={https://statsunlock.com/add-days-to-date-calculator/}}
Methods wording for a document
Dates were calculated using the StatsUnlock Add Days to Date Calculator (2026). Day counting was exclusive, so the first counted day is the day after the start date. Calendar months and years were added with an end of month clamp, so a day of month that does not exist in the target month resolves to the last day of that month. Where business day counting was used, Saturdays, Sundays and the listed public holidays were excluded. All dates follow the proleptic Gregorian calendar and carry no time of day.

🔗 20. Related Tools

📖 21. Glossary of Terms

TermPlain-English meaning
Business dayA day that is not a weekend day and not a public holiday. Also called a working day.
Calendar dayAny day at all, including Saturdays, Sundays and public holidays.
Clear daysA legal phrase meaning both the start day and the end day are excluded from the count.
Date serial numberThe whole number a spreadsheet uses to store a date. Excel counts days from 1 January 1900.
Day of yearThe position of a date within its year, from 1 on 1 January to 365 or 366 on 31 December.
Deadline rollA rule that moves a deadline landing on a non-working day to the next working day, or sometimes the previous one.
End of month clampReducing an impossible day of the month to the last real day, so 31 February becomes 28 or 29 February.
Exclusive countingCounting that starts on the day after the start date, so day 1 is the following day. The default here.
Gregorian calendarThe calendar in everyday use worldwide, introduced in 1582 and adopted at different times in different countries.
Inclusive countingCounting that treats the start date itself as day 1, which makes every result one day earlier.
ISO 8601The international date standard. It writes dates as YYYY-MM-DD and defines the week numbering used here.
ISO week numberA week number from 1 to 53 where weeks start on Monday and week 1 holds the year's first Thursday.
Leap yearA year with 366 days. It divides by 4, unless it is a century year, which must divide by 400.
Net 30A payment term meaning the invoice is due 30 days after its date, normally counted as calendar days.
Notice periodThe number of days that must pass between giving notice and the notice taking effect.
OffsetThe number of days, weeks, months or years being added to or subtracted from the start date.
Proleptic calendarA calendar rule applied to dates before it was actually introduced, which is how software handles old dates consistently.
Result dateThe date you land on after applying the offset to the start date. The answer this calculator gives.
RolloverPassing the end of a month or year during a calculation, so the count continues into the next one.
Start dateThe date the count begins from. Whether it is itself counted depends on the counting rule.
Unix epoch1 January 1970, the zero point many programming languages count time from.
WeekdayThe named day of the week, Monday through Sunday. It shifts by the number of days added modulo 7.
Weekend ruleWhich days of the week do not count as working days. Saturday and Sunday in most places, Friday and Saturday in some.
WORKDAYThe spreadsheet function that adds working days to a date, skipping weekends and an optional holiday list.

📚 22. References

Twenty peer-reviewed journal articles on calendars, date representation, temporal reasoning and date handling in software. Standards documents and official holiday calendars are named in Section 11 and Section 13 rather than here.

  1. Allen, J. F. (1983). Maintaining knowledge about temporal intervals. Communications of the ACM, 26(11), 832-843. https://doi.org/10.1145/182.358434
  2. Allen, J. F. (1984). Towards a general theory of action and time. Artificial Intelligence, 23(2), 123-154. https://doi.org/10.1016/0004-3702(84)90008-0
  3. Bettini, C., Jajodia, S., & Wang, X. S. (1998). A general framework for time granularity and its application to temporal reasoning. Annals of Mathematics and Artificial Intelligence, 22(1), 29-58. https://doi.org/10.1023/A:1018938900494
  4. Dyreson, C. E., Evans, W. S., Lin, H., & Snodgrass, R. T. (2000). Efficiently supporting temporal granularities. IEEE Transactions on Knowledge and Data Engineering, 12(4), 568-587. https://doi.org/10.1109/69.868908
  5. Fliegel, H. F., & Van Flandern, T. C. (1968). A machine algorithm for processing calendar dates. Communications of the ACM, 11(10), 657. https://doi.org/10.1145/364096.364097
  6. Goralwalla, I. A., Leontiev, Y., Ozsu, M. T., Szafron, D., & Combi, C. (2001). Temporal granularity: Completing the puzzle. Journal of Intelligent Information Systems, 16(1), 41-63. https://doi.org/10.1023/A:1008737019055
  7. Snodgrass, R. T., & Ahn, I. (1986). Temporal databases. Computer, 19(9), 35-42. https://doi.org/10.1109/MC.1986.1663327
  8. Jensen, C. S., & Snodgrass, R. T. (1999). Temporal data management. IEEE Transactions on Knowledge and Data Engineering, 11(1), 36-44. https://doi.org/10.1109/69.755613
  9. Ohlbach, H. J., & Gabbay, D. (1998). Calendar logic. Journal of Applied Non-Classical Logics, 8(4), 291-324. https://doi.org/10.1080/11663081.1998.10510949
  10. Reingold, E. M., Dershowitz, N., & Clamen, S. M. (1993). Calendrical calculations, II: Three historical calendars. Software: Practice and Experience, 23(4), 383-404. https://doi.org/10.1002/spe.4380230404
  11. Dershowitz, N., & Reingold, E. M. (1990). Calendrical calculations. Software: Practice and Experience, 20(9), 899-928. https://doi.org/10.1002/spe.4380200905
  12. Richards, E. G. (2013). Calendars and their reform. Astronomy & Geophysics, 54(3), 3.28-3.30. https://doi.org/10.1093/astrogeo/att088
  13. Terenziani, P., & Snodgrass, R. T. (2004). Reconciling point-based and interval-based semantics in temporal relational databases. IEEE Transactions on Knowledge and Data Engineering, 16(5), 540-551. https://doi.org/10.1109/TKDE.2004.1277816
  14. Verhagen, M., Sauri, R., Caselli, T., & Pustejovsky, J. (2010). Temporal expression recognition and normalization. Language Resources and Evaluation, 47(1), 123-152. https://doi.org/10.1007/s10579-012-9198-8
  15. Strotgen, J., & Gertz, M. (2013). Multilingual and cross-domain temporal tagging. Language Resources and Evaluation, 47(2), 269-298. https://doi.org/10.1007/s10579-012-9179-y
  16. Chen, T.-Y., Chen, Y.-M., & Wang, C.-B. (2011). A formal virtual enterprise access control model based on temporal constraints. Expert Systems with Applications, 38(6), 7503-7515. https://doi.org/10.1016/j.eswa.2010.12.109
  17. Ramaswamy, S. (1997). Efficient indexing for constraint and temporal databases. Lecture Notes in Computer Science, 1186, 419-431. https://doi.org/10.1007/3-540-62222-5_59
  18. Ahmad, K., & Cheng, D. (2007). Calendar-based temporal reasoning for financial text mining. Expert Systems with Applications, 33(3), 707-718. https://doi.org/10.1016/j.eswa.2006.06.017
  19. Wang, X. S., Bettini, C., Brodsky, A., & Jajodia, S. (1997). Logical design for temporal databases with multiple granularities. ACM Transactions on Database Systems, 22(2), 115-170. https://doi.org/10.1145/249978.249979
  20. Combi, C., Franceschet, M., & Peron, A. (2004). Representing and reasoning about temporal granularities. Journal of Logic and Computation, 14(1), 51-77. https://doi.org/10.1093/logcom/14.1.51
STATS UNLOCK · statsunlock.com · Add Days to Date Calculator
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Important Plots & Charts

Most Popular