DateTimeOffset.AddDays(Double) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 days
gü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.