DateTimeOffset.AddHours(Double) 메서드

정의

정수 및 소수로 계산된 지정된 시간 수를 이 인스턴스의 값에 더하는 새 DateTimeOffset 개체를 반환합니다.

public:
 DateTimeOffset AddHours(double hours);
public DateTimeOffset AddHours (double hours);
member this.AddHours : double -> DateTimeOffset
Public Function AddHours (hours As Double) As DateTimeOffset

매개 변수

hours
Double

정수 및 소수로 계산된 시간 수입니다. 숫자는 음수가 될 수도 있고 양수가 될 수도 있습니다.

반환

값이 현재 DateTimeOffset 개체가 나타내는 날짜 및 시간과 hours가 나타내는 시간 수의 합인 개체입니다.

예외

예제

다음 예제에서는 메서드를 AddHours 사용하여 하루에 2개의 8시간 교대 근무가 있는 사무실에서 특정 주에 대한 근무 교대 근무 시작 시간을 나열합니다.

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

설명

매개 변수의 hours 소수 부분은 1시간의 소수 부분입니다. 예를 들어 4.5는 4시간, 30분, 0초, 0밀리초에 해당합니다.

.NET 6 이전 버전 hours 에서는 매개 변수가 가장 가까운 밀리초로 반올림됩니다. .NET 7 이상 버전에서는 매개 변수의 전체 Double 전체 자릿수가 hours 사용됩니다. 그러나 부동 소수점 수학의 내재된 부정확성으로 인해 결과 정밀도는 달라집니다.

참고

이 메서드는 새 DateTimeOffset 개체를 반환합니다. 날짜 및 시간에 를 추가하여 hours 현재 개체의 값을 수정하지 않습니다.

개체가 DateTimeOffset 특정 표준 시간대 AddHours 의 날짜 및 시간을 나타내지 않으므로 메서드는 날짜 및 시간 산술 연산을 수행할 때 특정 표준 시간대의 조정 규칙을 고려하지 않습니다.

1시간 미만의 시간 간격을 분수로 변환하면 정밀도 손실이 포함될 수 있습니다. 예를 들어 1분은 1시간의 0.01666입니다. 문제가 있는 경우 메서드를 Add 사용하면 단일 메서드 호출에서 둘 이상의 시간 간격을 지정할 수 있으며 시간 간격을 시간의 소수 부분으로 변환할 필요가 없습니다.

적용 대상

추가 정보