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 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.