Skip to content

AddTimeSpan

Returns a new date time with adding specified duration in calendar rules.

1
myCalendar.AddTimeSpan(dateTime: DateTimeOffset, duration: string):DateTimeOffset

Parameters

DateTimeOffset dateTime
    Date time value to added to

string duration
    Duration in the "d.hh:mm:ss" or ISO-8601 duration format

Returns

A new date time.

Remarks

This method adds the given duration in business hours. If just need to add duration and find next business date time, please use Calendar.GetDateTime method instead.
In addition to ISO-8601 duration format, this method also supports the begin end specifiers for time periods. For example 'P0BD' means begin of the day and 'P0ED' means end of the day.
BD: Begin of the day, DE: End of the day, MB: Begin of the month, ME: End of the month, YB: Begin of the year, YE: End of the year.
P2BY: Adds 2 year to current date and rollbacks to beginning of the year
P1M2BD: Adds 1 month and 2 days to current date and rollbacks to beginning of the day
P1M2ED: Adds 1 month and 2 days to current date and forwards to end of the day

Using duration format

1
2
// Adds 1 month, 1 day, 2 hour
var newDate = $Calendar.StandardCalendar.AddTimeSpan($Calendar.Today, 'P1M1DT2H');

Using time span format

1
2
// Adds 1 day, 2 hours, 30 minutes and 45 seconds to the current time.
var newDate = $Calendar.StandardCalendar.AddTimeSpan($Calendar.Today, '1.02:30:45');

Warning

Duration

This method adds the duration in business hours and may skip non-business dates while adding duration.

For 09:00-18:00 business hours, adding 2 hours to 17:00 results next day 10:00 not 09:00

1
2
var nextDate = $Calendar.AddTimeSpan(DateTimeOffset.parse('2023-02-08T17:00'), 'PT2H');
// nextDate will be set to '2020-02-09T10:00'

Adds exactly 1 day, 2 hours, 30 minutes and 45 seconds to the current time.

1
2
var newDate = $Calendar.StandardCalendar.AddTimeSpan($Calendar.Today, '1.02:30:45');
var newDate = $Calendar.StandardCalendar.AddTimeSpan($Calendar.Today, 'P1DT2H');

See Also