Condividi tramite


DateTimeOffset.AddDays(Double) Metodo

Definizione

Restituisce un nuovo DateTimeOffset oggetto che aggiunge un numero specificato di giorni interi e frazionari al valore di questa 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 negativo o positivo.

Valori restituiti

Oggetto il cui valore è la somma della data e dell'ora rappresentate dall'oggetto corrente DateTimeOffset e il numero di giorni rappresentati 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 utilizzato il AddDays metodo per elencare le date che cadono 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.

In .NET Framework 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'imprecisione intrinseca della matematica a virgola mobile, la precisione risultante varia.

Annotazioni

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 particolare fuso orario quando esegue l'aritmetica di data e ora.

La conversione di intervalli di tempo inferiori a 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ù di un tipo 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