DateTimeOffset.AddDays Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Adds a specified number of whole and fractional days to the current DateTimeOffset object.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- days
- Type: System.Double
A number of whole and fractional days. The number can be negative or positive.
Return Value
Type: System.DateTimeOffsetAn object whose value is the sum of the date and time represented by the current DateTimeOffset object and the number of days represented by days.
| Exception | Condition |
|---|---|
| ArgumentOutOfRangeException | The resulting DateTimeOffset value is less than MinValue. -or- The resulting DateTimeOffset value is greater than MaxValue. |
The fractional part of the days parameter is the fractional part of a day. For example, 4.5 is equivalent to 4 days, 12 hours, 0 minutes, 0 seconds, 0 milliseconds. The days parameter is rounded to the nearest millisecond.
Note: |
|---|
This method returns a new DateTimeOffset object. It does not modify the value of the current object by adding days to its date and time. |
Because a DateTimeOffset object does not represent the date and time in a specific time zone, the AddDays method does not consider a particular time zone's adjustment rules when it performs date and time arithmetic.
Converting time intervals of less than a day to a fraction can involve a loss of precision. If this is problematic, you can use the Add method, which enables you to specify more than one kind of time interval in a single method call and eliminates the need to convert time intervals to fractional parts of a day.
The following example uses the AddDays method to list the dates that fall on Monday, the start of the work week, in March 2008.
Dim workDay As New DateTimeOffset(#3/1/2008 9:00:00 AM#, _ DateTimeOffset.Now.Offset) Dim month As Integer = workDay.Month ' Start with the first Monday of the month If workDay.DayOfWeek <> DayOfWeek.Monday Then If workDay.DayOfWeek = DayOfWeek.Sunday Then workDay = workDay.AddDays(1) Else workDay = workDay.AddDays(8 - CInt(workDay.DayOfWeek)) End If End If outputBlock.Text += String.Format("Beginning of Work Week In {0:MMMM} {0:yyyy}:", workDay) & vbCrLf ' Add one week to the current date Do While workDay.Month = month outputBlock.Text += String.Format(" {0:dddd}, {0:MMMM}{0: d}", workDay) & vbCrLf workDay = workDay.AddDays(7) Loop ' The example produces the following output: ' Beginning of Work Week In March 2008: ' Monday, March 3 ' Monday, March 10 ' Monday, March 17 ' Monday, March 24 ' Monday, March 31
Note: