DateTimeOffset.AddHours(Double) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí nový DateTimeOffset objekt, který přidá zadaný počet celých a desetinných hodin k hodnotě této instance.
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
Počet celých hodin a desetinných hodin. Číslo může být záporné nebo kladné.
Návraty
Objekt, jehož hodnota je součet data a času reprezentovaných aktuálním DateTimeOffset objektem a počtu hodin reprezentovaných objektem hours
.
Výjimky
Výsledná DateTimeOffset hodnota je menší než DateTimeOffset.MinValue.
-nebo-
Výsledná DateTimeOffset hodnota je větší než DateTimeOffset.MaxValue.
Příklady
Následující příklad používá metodu AddHours k výpisu počátečních časů pracovních směn pro konkrétní týden v kanceláři, která má dvě osmihodinové směny za den.
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
Poznámky
Zlomková část parametru hours
je zlomková část hodiny. Například hodnota 4,5 odpovídá 4 hodině, 30 minut, 0 sekund a 0 milisekund.
V .NET 6 a starších verzích hours
se parametr zaokrouhlí na nejbližší milisekundu. V .NET 7 a novějších verzích se používá úplná Double přesnost parametru hours
. Vzhledem k inherentní nepřesnosti matematiky s plovoucí desetinou čárkou se však výsledná přesnost bude lišit.
Poznámka
Tato metoda vrátí nový DateTimeOffset objekt. Neupravuje hodnotu aktuálního objektu přidáním hours
k jeho datu a času.
Vzhledem k tomu, že DateTimeOffset objekt nepředstavuje datum a čas v určitém časovém pásmu AddHours , metoda nebere v úvahu pravidla úprav určitého časového pásma, když provádí aritmetické hodnoty data a času.
Převod časových intervalů kratších než hodinu na zlomek může znamenat ztrátu přesnosti. (Například jedna minuta je 0,01666 hodiny.) Pokud je to problematické, můžete použít metodu Add , která umožňuje zadat více než jeden druh časového intervalu v jednom volání metody a eliminuje potřebu převést časové intervaly na zlomkové části hodiny.