gives the date n days after date.


gives the date n calendar steps after date.


gives a date offset by ni steps of each specified size.


gives the date n days after the current date.


gives the date with the specified offset from the current date.

Details and Options

  • DatePlus shifts dates by any given amount of time, treated either as a physical duration or as a number of calendar steps.
  • DatePlus[date,-n] gives the date n days before date.
  • Dates can be specified in the following forms:
  • DateObject[]date object
    {y,m,d}year, month, day
    {y,m}the first day of the specified month
    {y}January 1 of the year y
    "string"date as a string ("Jan. 1, 2000")
    {y,m,d,h,m,s}precise time
    timeabsolute time specification
  • Possible step sizes are calendar steps and day types "Year", "Quarter", "Month", "Week", "Day", "Hour", "Minute", "Second", "Weekday", "Weekend", Monday through Sunday, "EndOfMonth", "BeginningOfMonth" and "BusinessDay".
  • Offsets can also be specified using the Quantity framework.
  • {y,m,d} is taken to be equivalent to {y,m,d,0,0,0} etc.
  • DatePlus[date,offset] gives results in the same general format as date.
  • When date is a list, the result has the same length as date, possibly extended to include the smallest step in offset. »
  • When date is a string, the result is in the form specified by $DateStringFormat.
  • DatePlus takes the following options:
  • CalendarType "Gregorian"calendar in which the dates have been specified
    HolidayCalendar Automaticholiday schedule and subspecification for the business day and holiday computations
    Method Automaticdate arithmetic method to use
  • For added time steps with variable duration (e.g. "Month"), date arithmetic can either convert the steps into a physical duration (continuous arithmetic) or treat them all as discrete calendar steps (discrete arithmetic).
  • The option value Method"Continuous" implements continuous arithmetic. Discrete arithmetic is implemented with Methodrolling, where possible rolling methods are "RollForward", "RollBackward" and "RollOver", with the default being "RollBackward".
  • For discrete arithmetic, adding, for example, a month may result in a date that does not exist (e.g. February 30). In such cases, there are three possible options for how that date should be resolved:
  • "RollBackward"roll back to the last existing date (Feb 28)
    "RollForward"roll forward to the next existing date (Mar 1)
    "RollOver"increment from the next existing date (Mar )


open allclose all

Basic Examples  (5)

Add 35 days to January 1, 2017:

Use a date string as input:

Subtract 35 days from a date:

Add 14 weeks to a date:

Add 34 days to the current date:

Scope  (13)

Date Formats  (5)

DatePlus can take dates in the standard {y,m,d,h,m,s} format of DateList:

DatePlus can take dates in any format supported by DateString:

If a date is given as {y,m,d}, DatePlus returns in the same form:

{y,m} is interpreted as the first day of the specified month:

{y} is interpreted as January 1 of the specified year:

Increments  (8)

Add 10 months to a date:

Add 40 weeks to a date:

Add 7 weeks and 2 days:

Add 1 year to a date list:

Add 1 month and 15 days to the specified date:

The increment can be specified using the quantity framework:

Add 2.45 days:

Subtract 4.6 hours:

Options  (7)

CalendarType  (2)

Advance a date in the Jewish calendar:

Islamic years are shorter than Gregorian years:

HolidayCalendar  (2)

Compare the dates 250 business days away in different countries:

Different markets within a country may have different holiday schedules:

Method  (3)

By default, adding a month to May 31 will roll back to June 30:

Using Method"RollForward" will roll forward to the next valid date, July 1:

DatePlus[date,"Year"] will move forward 365 or 366 days, depending on the year:

Quantity[1,"Years"] is equivalent to Quantity[365,"Days"] in the Quantity framework:

Therefore Method"Continuous" will always add 365 days:

Compare the results of different arithmetic methods when adding a month to January 30, 2021:

Compare the results of different rolling methods for January 27 through February 1:

Applications  (1)

Add increasing powers of 10 in seconds starting from the beginning of year 2000:

Properties & Relations  (2)

DatePlus adds calendar steps to dates, while DateDifference computes time distances between dates:

The inverse relationship:

Use $DateStringFormat to set the default format for date strings:

Possible Issues  (3)

Dates can be ambiguous:

Use DateList to disambiguate between different interpretations:

When list increments are specified, they are added from highest order to lowest:

The order in which calendar units are added can change the results of arithmetic operations, due to variable lengths for months and years:

Wolfram Research (2007), DatePlus, Wolfram Language function, (updated 2023).


Wolfram Research (2007), DatePlus, Wolfram Language function, (updated 2023).


Wolfram Language. 2007. "DatePlus." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023.


Wolfram Language. (2007). DatePlus. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_dateplus, author="Wolfram Research", title="{DatePlus}", year="2023", howpublished="\url{}", note=[Accessed: 13-July-2024 ]}


@online{reference.wolfram_2024_dateplus, organization={Wolfram Research}, title={DatePlus}, year={2023}, url={}, note=[Accessed: 13-July-2024 ]}