DateTimeOffset.AddHours(Double) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca nowy DateTimeOffset obiekt, który dodaje określoną liczbę godzin całkowitych i ułamkowych do wartości tego wystąpienia.
public:
DateTimeOffset AddHours(double hours);
public DateTimeOffset AddHours (double hours);
member this.AddHours : double -> DateTimeOffset
Public Function AddHours (hours As Double) As DateTimeOffset
Parametry
- hours
- Double
Liczba godzin całkowitych i ułamkowych. Liczba może być dodatnia lub ujemna.
Zwraca
Obiekt, którego wartość jest sumą daty i godziny reprezentowanej przez bieżący DateTimeOffset obiekt oraz liczbę godzin reprezentowanych przez hours
element .
Wyjątki
Wynikowa DateTimeOffset wartość jest mniejsza niż DateTimeOffset.MinValue.
-lub-
Wynikowa DateTimeOffset wartość jest większa niż DateTimeOffset.MaxValue.
Przykłady
W poniższym przykładzie użyto AddHours metody , aby wyświetlić listę godzin rozpoczęcia zmian pracy dla określonego tygodnia w biurze, który ma dwie osiem godzin zmian dziennie.
const int SHIFT_LENGTH = 8;
DateTimeOffset startTime = new DateTimeOffset(2007, 8, 6, 0, 0, 0,
DateTimeOffset.Now.Offset);
DateTimeOffset startOfShift = startTime.AddHours(SHIFT_LENGTH);
Console.WriteLine("Shifts for the week of {0:D}", startOfShift);
do
{
// Exclude third shift
if (startOfShift.Hour > 6)
Console.WriteLine(" {0:d} at {0:T}", startOfShift);
startOfShift = startOfShift.AddHours(SHIFT_LENGTH);
} while (startOfShift.DayOfWeek != DayOfWeek.Saturday &
startOfShift.DayOfWeek != DayOfWeek.Sunday);
// The example produces the following output:
//
// Shifts for the week of Monday, August 06, 2007
// 8/6/2007 at 8:00:00 AM
// 8/6/2007 at 4:00:00 PM
// 8/7/2007 at 8:00:00 AM
// 8/7/2007 at 4:00:00 PM
// 8/8/2007 at 8:00:00 AM
// 8/8/2007 at 4:00:00 PM
// 8/9/2007 at 8:00:00 AM
// 8/9/2007 at 4:00:00 PM
// 8/10/2007 at 8:00:00 AM
// 8/10/2007 at 4:00:00 PM
let shiftLength = 8
let startTime = DateTimeOffset(2007, 8, 6, 0, 0, 0, DateTimeOffset.Now.Offset)
let mutable startOfShift = startTime.AddHours shiftLength
printfn $"Shifts for the week of {startOfShift:D}"
while startOfShift.DayOfWeek <> DayOfWeek.Saturday &&
startOfShift.DayOfWeek <> DayOfWeek.Sunday do
// Exclude third shift
if startOfShift.Hour > 6 then
printfn $" {startOfShift:d} at {startOfShift:T}"
startOfShift <- startOfShift.AddHours shiftLength
// The example produces the following output:
//
// Shifts for the week of Monday, August 06, 2007
// 8/6/2007 at 8:00:00 AM
// 8/6/2007 at 4:00:00 PM
// 8/7/2007 at 8:00:00 AM
// 8/7/2007 at 4:00:00 PM
// 8/8/2007 at 8:00:00 AM
// 8/8/2007 at 4:00:00 PM
// 8/9/2007 at 8:00:00 AM
// 8/9/2007 at 4:00:00 PM
// 8/10/2007 at 8:00:00 AM
// 8/10/2007 at 4:00:00 PM
Const SHIFT_LENGTH As Integer = 8
Dim startTime As New DateTimeOffset(#8/6/2007 12:00:00AM#, _
DateTimeOffset.Now.Offset)
Dim startOfShift As DateTimeOffset = startTime.AddHours(SHIFT_LENGTH)
Console.WriteLine("Shifts for the week of {0:D}", startOfShift)
Do
' Exclude third shift
If startOfShift.Hour > 6 Then _
Console.WriteLine(" {0:d} at {0:T}", startOfShift)
startOfShift = startOfShift.AddHours(SHIFT_LENGTH)
Loop While startOfShift.DayOfWeek <> DayOfWeek.Saturday And _
startOfShift.DayOfWeek <> DayOfWeek.Sunday
' The example produces the following output:
'
' Shifts for the week of Monday, August 06, 2007
' 8/6/2007 at 8:00:00 AM
' 8/6/2007 at 4:00:00 PM
' 8/7/2007 at 8:00:00 AM
' 8/7/2007 at 4:00:00 PM
' 8/8/2007 at 8:00:00 AM
' 8/8/2007 at 4:00:00 PM
' 8/9/2007 at 8:00:00 AM
' 8/9/2007 at 4:00:00 PM
' 8/10/2007 at 8:00:00 AM
' 8/10/2007 at 4:00:00 PM
Uwagi
Część ułamkowa parametru hours
jest częścią ułamkową godziny. Na przykład wartość 4,5 jest równoważna 4 godzinom, 30 minutom, 0 sekundom, 0 milisekundom.
W programie .NET 6 i starszych wersjach hours
parametr jest zaokrąglany do najbliższej milisekundy. W programie .NET 7 i nowszych wersjach jest używana pełna Double precyzja parametru hours
. Jednak ze względu na nieodłączną nieprawdopodobność matematycznych zmiennoprzecinkowych precyzja wynikowa będzie się różnić.
Uwaga
Ta metoda zwraca nowy DateTimeOffset obiekt. Nie modyfikuje on wartości bieżącego obiektu przez dodanie hours
do jego daty i godziny.
DateTimeOffset Ponieważ obiekt nie reprezentuje daty i godziny w określonej strefie czasowej, AddHours metoda nie uwzględnia reguł korekty określonej strefy czasowej podczas wykonywania arytmetyki daty i godziny.
Konwertowanie interwałów czasu krótszych niż godzina na ułamek może obejmować utratę dokładności. (Na przykład jedna minuta to 0,01666 godziny). Jeśli jest to problematyczne, możesz użyć Add metody , która umożliwia określenie więcej niż jednego rodzaju interwału czasu w jednym wywołaniu metody i eliminuje konieczność konwertowania interwałów czasu na części ułamkowe godziny.