DateTimeOffset.AddDays(Double) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar ett nytt DateTimeOffset objekt som lägger till ett angivet antal hela dagar och bråkdagar till värdet för den här instansen.
public:
DateTimeOffset AddDays(double days);
public DateTimeOffset AddDays(double days);
member this.AddDays : double -> DateTimeOffset
Public Function AddDays (days As Double) As DateTimeOffset
Parametrar
- days
- Double
Ett antal hela och bråkdagar. Talet kan vara negativt eller positivt.
Returer
Ett objekt vars värde är summan av datum och tid som representeras av det aktuella DateTimeOffset objektet och antalet dagar som representeras av days.
Undantag
Det resulterande DateTimeOffset värdet är mindre än DateTimeOffset.MinValue.
-eller-
Det resulterande DateTimeOffset värdet är större än DateTimeOffset.MaxValue.
Exempel
I följande exempel används AddDays metoden för att lista datum som infaller på måndag, början av arbetsveckan, i mars 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
Kommentarer
Deldelen av parametern days är bråkdelen av en dag. Till exempel motsvarar 4,5 4 dagar, 12 timmar, 0 minuter, 0 sekunder, 0 millisekunder.
I .NET Framework avrundas parametern days till närmaste millisekunder. I .NET 7 och senare versioner används den fullständiga Double precisionen för parametern days. Men på grund av den inneboende oskärningen av flyttalsmatematik varierar den resulterande precisionen.
Note
Den här metoden returnerar ett nytt DateTimeOffset objekt. Det ändrar inte värdet för det aktuella objektet genom att lägga days till dess datum och tid.
Eftersom ett DateTimeOffset objekt inte representerar datum och tid i en specifik tidszon tar AddDays metoden inte hänsyn till en viss tidszons justeringsregler när den utför datum- och tidsaritmetik.
Att konvertera tidsintervall på mindre än en dag till en bråkdel kan innebära en förlust av precision. Om detta är problematiskt kan du använda Add metoden, som gör att du kan ange mer än en typ av tidsintervall i ett enda metodanrop och eliminerar behovet av att konvertera tidsintervall till bråkdelar av en dag.