Freigeben über


DateTimeOffset.AddHours(Double) Methode

Definition

Gibt ein neues DateTimeOffset Objekt zurück, das dem Wert dieser Instanz eine angegebene Anzahl von ganzen und Bruchstunden hinzufügt.

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 Anzahl von ganzen und Bruchstunden. Die Zahl kann negativ oder positiv sein.

Gibt zurück

Ein Objekt, dessen Wert die Summe des Datums und der Uhrzeit darstellt, die durch das aktuelle DateTimeOffset Objekt dargestellt wird, und die Anzahl der Stunden, die durch hoursdargestellt werden.

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 mit zwei achtstündigen Schichten pro Tag auflisten.

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 Bruchteil des hours Parameters ist der Bruchteil einer Stunde. Beispielsweise entspricht 4,5 4 Stunden, 30 Minuten, 0 Sekunden, 0 Millisekunden.

In .NET Framework wird der hours Parameter auf die nächste Millisekunden gerundet. In .NET 7 und höheren Versionen wird die volle Double Genauigkeit des hours Parameters verwendet. Aufgrund der inhärenten Ungenauigkeit von Gleitkommagleichungen variiert die resultierende Genauigkeit jedoch.

Hinweis

Diese Methode gibt ein neues DateTimeOffset Objekt zurück. Der Wert des aktuellen Objekts wird durch Hinzufügen hours zu Datum und Uhrzeit nicht geändert.

Da ein DateTimeOffset Objekt das Datum und die Uhrzeit in einer bestimmten Zeitzone nicht darstellt, berücksichtigt die AddHours Methode bei der Ausführung von Datums- und Uhrzeitarithmetik keine Anpassungsregeln einer bestimmten Zeitzone.

Das Konvertieren von Zeitintervallen von weniger als einer Stunde in einen Bruch kann zu einem Genauigkeitsverlust führen. (Beispielsweise beträgt eine Minute 0,01666 einer Stunde.) Wenn dies problematisch ist, können Sie die Methode verwenden, mit der Add Sie mehr als eine Art von Zeitintervall in einem einzelnen Methodenaufruf angeben können, und die Notwendigkeit, Zeitintervalle in Bruchteile einer Stunde umzuwandeln.

Gilt für:

Weitere Informationen