DateTimeOffset.AddDays(Double) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.