DateTimeOffset.AddDays(Double) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna um novo objeto DateTimeOffset que adiciona um número especificado de dias inteiros e fracionários ao valor dessa 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 fracionários. O número pode ser positivo ou negativo.
Retornos
Um objeto cujo valor é a soma da data e hora representada pelo objeto DateTimeOffset atual e o número de dias representado por days
.
Exceções
O valor resultante DateTimeOffset é menor que DateTimeOffset.MinValue.
-ou-
O valor resultante DateTimeOffset é maior que DateTimeOffset.MaxValue.
Exemplos
O exemplo a seguir usa o AddDays método para listar as datas que caem na segunda-feira, o 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
Comentários
A parte fracionária do days
parâmetro é a parte fracionária de um dia. Por exemplo, 4,5 é equivalente a 4 dias, 12 horas, 0 minutos, 0 segundos, 0 milissegundos.
No .NET 6 e em versões anteriores, o days
parâmetro é arredondado para o milissegundo mais próximo. No .NET 7 e versões posteriores, a precisão completa Double do days
parâmetro é usada. No entanto, devido à imprecisão inerente da matemática de ponto flutuante, a precisão resultante variará.
Observação
Este método retorna um novo objeto DateTimeOffset. Ele 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 em um fuso horário específico, o AddDays método não considera as regras de ajuste de um fuso horário específico quando executa a aritmética de data e hora.
A conversão de intervalos de tempo de menos de um dia em uma fração pode envolver uma perda de precisão. Se isso for problemático, você poderá usar o Add método , que permite especificar mais de um tipo de intervalo de tempo em uma única chamada de método e eliminará a necessidade de converter intervalos de tempo em partes fracionárias de um dia.