Aracılığıyla paylaş


DateTimeOffset.AddDays(Double) Yöntem

Tanım

Bu örneğin değerine belirtilen sayıda tam ve kesirli gün ekleyen yeni DateTimeOffset bir nesne döndürür.

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

Parametreler

days
Double

Tam ve kesirli gün sayısı. Sayı negatif veya pozitif olabilir.

Döndürülenler

Değeri geçerli DateTimeOffset nesneyle temsil edilen tarih ve saatin toplamı ve ile temsil edilen daysgün sayısı olan bir nesne.

Özel durumlar

Sonuçta elde edilen DateTimeOffset değer DateTimeOffset.MinValue değerinden küçüktür.

-veya-

Sonuçta elde edilen DateTimeOffset değer DateTimeOffset.MaxValue değerinden büyüktür.

Örnekler

Aşağıdaki örnek, Mart 2008'de çalışma haftasının başlangıcı olan Pazartesi gününe denk gelen tarihleri listelemek için yöntemini kullanır AddDays .

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

Açıklamalar

Parametrenin days kesirli bölümü, günün kesirli bölümüdür. Örneğin, 4,5 4 gün, 12 saat, 0 dakika, 0 saniye, 0 milisaniye ile eşdeğerdir.

.NET 6 ve önceki sürümlerde days parametresi en yakın milisaniyeye yuvarlanmıştır. .NET 7 ve sonraki sürümlerde parametresinin days tam Double duyarlığı kullanılır. Ancak, kayan nokta matematiğin doğal kararsızlığı nedeniyle elde edilen duyarlık farklılık gösterir.

Not

Bu yöntem yeni DateTimeOffset bir nesne döndürür. Geçerli nesnenin değerini tarih ve saatine ekleyerek days değiştirmez.

Bir nesne belirli bir DateTimeOffset saat dilimindeki tarih ve saati temsil etmediğinden, AddDays yöntem tarih ve saat aritmetiği gerçekleştirirken belirli bir saat diliminin ayarlama kurallarını dikkate almaz.

Bir günden küçük zaman aralıklarının kesire dönüştürülmesi duyarlık kaybına neden olabilir. Bu sorunluysa, tek bir yöntem çağrısında Add birden fazla tür zaman aralığı belirtmenize olanak tanıyan ve zaman aralıklarını günün kesirli bölümlerine dönüştürme gereksinimini ortadan kaldıran yöntemini kullanabilirsiniz.

Şunlara uygulanır