DateTimeOffset.AddHours(Double) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 정수 및 소수 자릿수 시간을 이 인스턴스의 값에 추가하는 새 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수인 개체입니다.
예외
결과 DateTimeOffset 값이 DateTimeOffset.MinValue보다 작습니다.
-또는-
결과 DateTimeOffset 값이 DateTimeOffset.MaxValue보다 큽니다.
예제
다음 예제에서는 이 방법을 사용하여 AddHours 하루에 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 Framework hours 에서 매개 변수는 가장 가까운 밀리초로 반올림됩니다. .NET 7 이상 버전에서는 매개 변수의 전체 Double 전체 자릿수가 hours 사용됩니다. 그러나 부동 소수점 수학의 내재된 부정확성으로 인해 결과 정밀도는 달라집니다.
메모
이 메서드는 새 DateTimeOffset 개체를 반환합니다. 날짜 및 시간에 추가하여 hours 현재 개체의 값을 수정하지 않습니다.
개체가 DateTimeOffset 특정 표준 시간대 AddHours 의 날짜 및 시간을 나타내지 않으므로 날짜 및 시간 산술 연산을 수행할 때 메서드는 특정 표준 시간대의 조정 규칙을 고려하지 않습니다.
1시간 미만의 시간 간격을 분수로 변환하면 정밀도가 떨어질 수 있습니다. 예를 들어 1분은 1시간의 0.01666입니다. 문제가 있는 경우 메서드를 Add 사용하면 단일 메서드 호출에서 둘 이상의 시간 간격을 지정할 수 있으며 시간 간격을 시간의 소수 부분으로 변환할 필요가 없습니다.