Compartir vía


DateTimeOffset.AddDays(Double) Método

Definición

Devuelve un nuevo objeto DateTimeOffset, que agrega un número especificado de días enteros y fraccionarios al valor de esta instancia.

public:
 DateTimeOffset AddDays(double days);
public DateTimeOffset AddDays (double days);
member this.AddDays : double -> DateTimeOffset
Public Function AddDays (days As Double) As DateTimeOffset

Parámetros

days
Double

Número de días enteros y fraccionarios. El número puede ser positivo o negativo.

Devoluciones

Un objeto cuyo valor es la suma de la fecha y hora representadas por el objeto DateTimeOffset actual y el número de días representados por days.

Excepciones

El valor resultante DateTimeOffset es menor que DateTimeOffset.MinValue.

O bien

El valor resultante DateTimeOffset es mayor que DateTimeOffset.MaxValue.

Ejemplos

En el ejemplo siguiente se usa el AddDays método para enumerar las fechas que se encuentran el lunes, el inicio de la semana laboral, en marzo de 2008.

DateTimeOffset workDay = new DateTimeOffset(2008, 3, 1, 9, 0, 0,
                   DateTimeOffset.Now.Offset);
int month = workDay.Month;
// Start with the first Monday of the month
if (workDay.DayOfWeek != DayOfWeek.Monday)
{
   if (workDay.DayOfWeek == DayOfWeek.Sunday)
      workDay = workDay.AddDays(1);
   else
      workDay = workDay.AddDays(8 - (int)workDay.DayOfWeek);
}
Console.WriteLine("Beginning of Work Week In {0:MMMM} {0:yyyy}:", workDay);
// Add one week to the current date
do
{
   Console.WriteLine("   {0:dddd}, {0:MMMM}{0: d}", workDay);
   workDay = workDay.AddDays(7);
} while (workDay.Month == month);
// 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
let workDay = DateTimeOffset(2008, 3, 1, 9, 0, 0, DateTimeOffset.Now.Offset)
let month = workDay.Month

// Start with the first Monday of the month
let mutable workDay = 
    match workDay.DayOfWeek with
    | DayOfWeek.Monday ->
        workDay
    | DayOfWeek.Sunday ->
        workDay.AddDays 1
    | _ ->
        workDay.AddDays(8. - float workDay.DayOfWeek)

printfn $"Beginning of Work Week In {workDay:MMMM} {workDay:yyyy}:"

// Add one week to the current date
while workDay.Month = month do
    printfn $"   {workDay:dddd}, {workDay:MMMM}{workDay: d}"
    workDay <- workDay.AddDays 7

// 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
Dim workDay As New DateTimeOffset(#3/1/2008 9:00AM#, _
                   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
Console.WriteLine("Beginning of Work Week In {0:MMMM} {0:yyyy}:", workDay)
' Add one week to the current date 
Do While workDay.Month = month
   Console.WriteLine("   {0:dddd}, {0:MMMM}{0: d}", workDay)
   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

Comentarios

La parte fraccionarcional del days parámetro es la parte fraccionarcional de un día. Por ejemplo, 4,5 equivale a 4 días, 12 horas, 0 minutos, 0 segundos, 0 milisegundos.

En .NET 6 y versiones anteriores, el days parámetro se redondea al milisegundo más cercano. En .NET 7 y versiones posteriores, se usa la precisión completa Double del days parámetro . Sin embargo, debido a la imprecisión inherente de las matemáticas de punto flotante, la precisión resultante variará.

Nota:

Este método devuelve un nuevo DateTimeOffset objeto . No modifica el valor del objeto actual agregando days a su fecha y hora.

Dado que un DateTimeOffset objeto no representa la fecha y hora de una zona horaria específica, el AddDays método no considera las reglas de ajuste de una zona horaria determinada cuando realiza la aritmética de fecha y hora.

La conversión de intervalos de tiempo de menos de un día a una fracción puede implicar una pérdida de precisión. Si esto es problemático, puede usar el Add método , que le permite especificar más de un tipo de intervalo de tiempo en una sola llamada al método y elimina la necesidad de convertir intervalos de tiempo en partes fraccionarios de un día.

Se aplica a