DateTimeOffset.AddHours(Double) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt ein neues DateTimeOffset-Objekt zurück, das eine angegebene Anzahl von ganzen Stunden und Bruchteilen von Stunden zum Wert dieser Instanz addiert.
public:
DateTimeOffset AddHours(double hours);
public DateTimeOffset AddHours (double hours);
member this.AddHours : double -> DateTimeOffset
Public Function AddHours (hours As Double) As DateTimeOffset
Parameter
- hours
- Double
Eine Zahl, die aus ganzen Stunden und dem Bruchteil einer Stunde besteht. Die Zahl kann negativ oder positiv sein.
Gibt zurück
Ein Objekt, dessen Wert die Summe aus der vom aktuellen DateTimeOffset-Objekt dargestellten Datums- und Uhrzeitangabe und der von hours
dargestellten Anzahl von Stunden ist.
Ausnahmen
Der resultierende DateTimeOffset Wert ist kleiner als DateTimeOffset.MinValue.
Oder
Der resultierende DateTimeOffset Wert ist größer als DateTimeOffset.MaxValue.
Beispiele
Im folgenden Beispiel wird die AddHours -Methode verwendet, um die Anfangszeiten von Arbeitsschichten für eine bestimmte Woche in einem Büro aufzulisten, in dem zwei Acht-Stunden-Schichten pro Tag vorhanden sind.
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
Hinweise
Der Fraktionsteil des hours
Parameters ist der Bruchteil einer Stunde. Beispielsweise entspricht 4,5 4 Stunden, 30 Minuten, 0 Sekunden, 0 Millisekunden.
In .NET 6 und früheren Versionen wird der hours
Parameter auf die nächste Millisekunde gerundet. In .NET 7 und höheren Versionen wird die volle Double Genauigkeit des hours
Parameters verwendet. Aufgrund der inhärenten Ungenauigkeit der Gleitkomma-Mathematik variiert die resultierende Genauigkeit jedoch.
Hinweis
Diese Methode gibt ein neues DateTimeOffset Objekt zurück. Der Wert des aktuellen Objekts wird nicht geändert, indem datum und uhrzeit hinzugefügt hours
werden.
Da ein DateTimeOffset Objekt das Datum und die Uhrzeit in einer bestimmten Zeitzone nicht darstellt, berücksichtigt die AddHours Methode die Anpassungsregeln einer bestimmten Zeitzone nicht, wenn sie Datums- und Uhrzeitarithmetik ausführt.
Das Konvertieren von Zeitintervallen von weniger als einer Stunde in einen Bruch kann einen Genauigkeitsverlust mit sich bringen. (Eine Minute ist beispielsweise 0,01666 einer Stunde.) Wenn dies problematisch ist, können Sie die Add -Methode verwenden, mit der Sie mehr als eine Art von Zeitintervall in einem einzelnen Methodenaufruf angeben können und die Notwendigkeit entfällt, Zeitintervalle in Bruchteile einer Stunde zu konvertieren.