Udostępnij za pośrednictwem


DateTimeOffset.AddHours(Double) Metoda

Definicja

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ć ujemna lub dodatnia.

Zwraca

Obiekt, którego wartość jest sumą daty i godziny reprezentowanej przez bieżący DateTimeOffset obiekt oraz liczbę godzin reprezentowanych przez hourselement .

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óre 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 Framework 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ść matematycznej zmiennoprzecinkowa precyzja będzie się różnić.

Uwaga / Notatka

Ta metoda zwraca nowy DateTimeOffset obiekt. Nie modyfikuje wartości bieżącego obiektu przez dodanie hours jej do 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ść konwersji interwałów czasu na części ułamkowe godziny.

Dotyczy

Zobacz też