DateTime.AddHours(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.
Belirtilen saat sayısını bu örneğin değerine ekleyen yeni DateTime bir değer döndürür.
public:
DateTime AddHours(double value);
public DateTime AddHours(double value);
member this.AddHours : double -> DateTime
Public Function AddHours (value As Double) As DateTime
Parametreler
- value
- Double
Tam ve kesirli saat sayısı.
value Parametre negatif veya pozitif olabilir.
Döndürülenler
Değeri, bu örnekle temsil edilen tarih ve saatin toplamı ve tarafından valuetemsil edilen saat sayısı olan bir nesne.
Özel durumlar
DateTime Sonuç DateTime.MinValue değerinden küçük veya DateTime.MaxValue değerinden büyük.
Örnekler
Aşağıdaki örnek, AddHours bir tarih ve saate bir dizi tam ve kesirli değer eklemek için yöntemini kullanır. Ayrıca yöntemi kesirli bileşen içeren bir değer geçirmenin neden olduğu duyarlık kaybını da gösterir.
using System;
public class Example
{
public static void Main()
{
double[] hours = {.08333, .16667, .25, .33333, .5, .66667, 1, 2,
29, 30, 31, 90, 365};
DateTime dateValue = new DateTime(2009, 3, 1, 12, 0, 0);
foreach (double hour in hours)
Console.WriteLine("{0} + {1} hour(s) = {2}", dateValue, hour,
dateValue.AddHours(hour));
}
}
// The example displays the following output on a system whose current
// culture is en-US:
// 3/1/2009 12:00:00 PM + 0.08333 hour(s) = 3/1/2009 12:04:59 PM
// 3/1/2009 12:00:00 PM + 0.16667 hour(s) = 3/1/2009 12:10:00 PM
// 3/1/2009 12:00:00 PM + 0.25 hour(s) = 3/1/2009 12:15:00 PM
// 3/1/2009 12:00:00 PM + 0.33333 hour(s) = 3/1/2009 12:19:59 PM
// 3/1/2009 12:00:00 PM + 0.5 hour(s) = 3/1/2009 12:30:00 PM
// 3/1/2009 12:00:00 PM + 0.66667 hour(s) = 3/1/2009 12:40:00 PM
// 3/1/2009 12:00:00 PM + 1 hour(s) = 3/1/2009 1:00:00 PM
// 3/1/2009 12:00:00 PM + 2 hour(s) = 3/1/2009 2:00:00 PM
// 3/1/2009 12:00:00 PM + 29 hour(s) = 3/2/2009 5:00:00 PM
// 3/1/2009 12:00:00 PM + 30 hour(s) = 3/2/2009 6:00:00 PM
// 3/1/2009 12:00:00 PM + 31 hour(s) = 3/2/2009 7:00:00 PM
// 3/1/2009 12:00:00 PM + 90 hour(s) = 3/5/2009 6:00:00 AM
// 3/1/2009 12:00:00 PM + 365 hour(s) = 3/16/2009 5:00:00 PM
open System
let hours =
[ 0.08333; 0.16667; 0.25
0.33333; 0.5; 0.66667; 1
2; 29; 30; 31; 90; 365 ]
let dateValue = DateTime(2009, 3, 1, 12, 0, 0)
for hour in hours do
printfn $"{dateValue} + {hour} hour(s) = {dateValue.AddHours hour}"
// The example displays the following output on a system whose current
// culture is en-US:
// 3/1/2009 12:00:00 PM + 0.08333 hour(s) = 3/1/2009 12:04:59 PM
// 3/1/2009 12:00:00 PM + 0.16667 hour(s) = 3/1/2009 12:10:00 PM
// 3/1/2009 12:00:00 PM + 0.25 hour(s) = 3/1/2009 12:15:00 PM
// 3/1/2009 12:00:00 PM + 0.33333 hour(s) = 3/1/2009 12:19:59 PM
// 3/1/2009 12:00:00 PM + 0.5 hour(s) = 3/1/2009 12:30:00 PM
// 3/1/2009 12:00:00 PM + 0.66667 hour(s) = 3/1/2009 12:40:00 PM
// 3/1/2009 12:00:00 PM + 1 hour(s) = 3/1/2009 1:00:00 PM
// 3/1/2009 12:00:00 PM + 2 hour(s) = 3/1/2009 2:00:00 PM
// 3/1/2009 12:00:00 PM + 29 hour(s) = 3/2/2009 5:00:00 PM
// 3/1/2009 12:00:00 PM + 30 hour(s) = 3/2/2009 6:00:00 PM
// 3/1/2009 12:00:00 PM + 31 hour(s) = 3/2/2009 7:00:00 PM
// 3/1/2009 12:00:00 PM + 90 hour(s) = 3/5/2009 6:00:00 AM
// 3/1/2009 12:00:00 PM + 365 hour(s) = 3/16/2009 5:00:00 PM
Module Example
Public Sub Main()
Dim hours() As Double = {.08333, .16667, .25, .33333, .5, .66667, 1, 2, _
29, 30, 31, 90, 365}
Dim dateValue As Date = #3/1/2009 12:00#
For Each hour As Double In hours
Console.WriteLine("{0} + {1} hour(s) = {2}", dateValue, hour, _
dateValue.AddHours(hour))
Next
End Sub
End Module
' The example displays the following output on a system whose current
' culture is en-US:
' 3/1/2009 12:00:00 PM + 0.08333 hour(s) = 3/1/2009 12:04:59 PM
' 3/1/2009 12:00:00 PM + 0.16667 hour(s) = 3/1/2009 12:10:00 PM
' 3/1/2009 12:00:00 PM + 0.25 hour(s) = 3/1/2009 12:15:00 PM
' 3/1/2009 12:00:00 PM + 0.33333 hour(s) = 3/1/2009 12:19:59 PM
' 3/1/2009 12:00:00 PM + 0.5 hour(s) = 3/1/2009 12:30:00 PM
' 3/1/2009 12:00:00 PM + 0.66667 hour(s) = 3/1/2009 12:40:00 PM
' 3/1/2009 12:00:00 PM + 1 hour(s) = 3/1/2009 1:00:00 PM
' 3/1/2009 12:00:00 PM + 2 hour(s) = 3/1/2009 2:00:00 PM
' 3/1/2009 12:00:00 PM + 29 hour(s) = 3/2/2009 5:00:00 PM
' 3/1/2009 12:00:00 PM + 30 hour(s) = 3/2/2009 6:00:00 PM
' 3/1/2009 12:00:00 PM + 31 hour(s) = 3/2/2009 7:00:00 PM
' 3/1/2009 12:00:00 PM + 90 hour(s) = 3/5/2009 6:00:00 AM
' 3/1/2009 12:00:00 PM + 365 hour(s) = 3/16/2009 5:00:00 PM
Açıklamalar
Bu yöntem bu DateTimedeğerini değiştirmez. Bunun yerine, değeri bu işlemin sonucu olan yeni DateTime bir döndürür.
Kind Döndürülen DateTime nesnenin özelliği ile aynıdırvalue.
öğesinin value kesirli kısmı, bir saatin kesirli kısmıdır. Örneğin 4,5, 4 saat, 30 dakika, 0 saniye, 0 milisaniye ve 0 değer çizgisine eşdeğerdir.
.NET 6 ve önceki sürümlerde value parametresi en yakın milisaniyeye yuvarlanmıştır. .NET 7 ve sonraki sürümlerde parametresinin value tam Double duyarlığı kullanılır. Ancak kayan nokta matematiğin doğası gereği kesinlik nedeniyle elde edilen duyarlık farklılık gösterir.
Bir saatten kısa zaman aralıklarının kesire dönüştürülmesi, sonuç sonlandırıcı olmayan bir yinelenen ondalıksa duyarlık kaybına neden olabilir. (Örneğin, bir dakika saat 0,016667'dir.) Bu sorunluysa, tek bir yöntem çağrısında Add birden fazla zaman aralığı türü belirtmenize olanak tanıyan ve zaman aralıklarını bir saatin kesirli bölümlerine dönüştürme gereksinimini ortadan kaldıran yöntemini kullanabilirsiniz.