DateTimeOffset.AddDays(Double) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.