Freigeben über


DateTimeOffset.AddHours(Double) Methode

Definition

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.

Gilt für:

Weitere Informationen