DateTimeOffset.AddDays(Double) Método

Definição

Devolve um novo DateTimeOffset objeto que adiciona um número especificado de dias inteiros e fracionários ao valor desta instância.

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

Um número de dias inteiros e fracionados. O número pode ser negativo ou positivo.

Devoluções

Um objeto cujo valor é a soma da data e hora representadas pelo objeto atual DateTimeOffset e o número de dias representado por days.

Exceções

O valor resultante DateTimeOffset é inferior ao DateTimeOffset.MinValue.

-ou-

O valor resultante DateTimeOffset é superior ao DateTimeOffset.MaxValue.

Exemplos

O exemplo seguinte utiliza o AddDays método para listar as datas que caem na segunda-feira, início da semana de trabalho, em março 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

Observações

A parte fracionária do days parâmetro é a parte fracionária de um dia. Por exemplo, 4,5 equivale a 4 dias, 12 horas, 0 minutos, 0 segundos, 0 milissegundos.

No .NET Framework, o parâmetro days é arredondado para o milissegundo mais próximo. Nas versões .NET 7 e posteriores, é utilizada a precisão total Double do parâmetro days. No entanto, devido à imprecisão inerente da matemática de ponto flutuante, a precisão resultante irá variar.

Note

Este método devolve um novo DateTimeOffset objeto. Não modifica o valor do objeto atual adicionando days à sua data e hora.

Como um DateTimeOffset objeto não representa a data e a hora num fuso horário específico, o AddDays método não considera as regras de ajuste de um fuso horário específico ao realizar a aritmética de data e hora.

Converter intervalos de tempo inferiores a um dia para uma fração pode implicar uma perda de precisão. Se isto for problemático, pode usar o Add método, que permite especificar mais do que um tipo de intervalo de tempo numa única chamada de método e elimina a necessidade de converter intervalos de tempo em partes fracionárias de um dia.

Aplica-se a