Condividi tramite


DateTimeOffset.AddDays(Double) Metodo

Definizione

Restituisce un nuovo oggetto DateTimeOffset che aggiunge un numero specificato di giorni interi e frazionari al valore dell'istanza.

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

Parametri

days
Double

Numero di giorni interi e frazionari. Il numero può essere positivo o negativo.

Restituisce

Oggetto il cui valore è la somma della data e dell'ora rappresentate dall'oggetto DateTimeOffset corrente e del numero di giorni rappresentato da days.

Eccezioni

Il valore risultante DateTimeOffset è minore di DateTimeOffset.MinValue.

-oppure-

Il valore risultante DateTimeOffset è maggiore di DateTimeOffset.MaxValue.

Esempio

Nell'esempio seguente viene usato il AddDays metodo per elencare le date che rientrano il lunedì, l'inizio della settimana lavorativa, nel marzo 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

Commenti

La parte frazionaria del days parametro è la parte frazionaria di un giorno. Ad esempio, 4,5 equivale a 4 giorni, 12 ore, 0 minuti, 0 secondi, 0 millisecondi.

Nelle versioni precedenti e .NET 6 il days parametro viene arrotondato al millisecondo più vicino. In .NET 7 e versioni successive viene usata la precisione completa Double del days parametro. Tuttavia, a causa dell'accuratezza intrinseca della matematica a virgola mobile, la precisione risultante varia.

Nota

Questo metodo restituisce un nuovo DateTimeOffset oggetto. Non modifica il valore dell'oggetto corrente aggiungendo days alla data e all'ora.

Poiché un DateTimeOffset oggetto non rappresenta la data e l'ora in un fuso orario specifico, il AddDays metodo non considera le regole di regolazione di un determinato fuso orario quando esegue l'aritmetica data e ora.

La conversione di intervalli di tempo di meno di un giorno in una frazione può comportare una perdita di precisione. In caso di problemi, è possibile usare il Add metodo, che consente di specificare più tipi di intervallo di tempo in una singola chiamata al metodo ed elimina la necessità di convertire gli intervalli di tempo in parti frazionarie di un giorno.

Si applica a