Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# DateTimeOffset.AddHours() 메서드 – 시간 더하기·빼기 완벽 가이드

C#의 DateTimeOffset.AddHours() 메서드는 현재 인스턴스의 날짜·시간 값에 지정된 시간(정수 또는 소수 단위)을 더한 새로운 DateTimeOffset 객체를 반환합니다. 이 메서드는 원본 값을 변경하지 않고 새로운 결과값을 생성하므로, 날짜 계산 시 안전하게 활용할 수 있습니다.

구문(Syntax)

DateTimeOffset.AddHours() 메서드의 기본 구문은 다음과 같습니다.

public DateTimeOffset AddHours (double hrs);

매개변수 hrs에는 더할 시간을 지정합니다. 소수점 값도 허용되므로 예를 들어 1.5를 전달하면 1시간 30분이 추가됩니다. 반대로 시간을 빼고 싶다면 음수 값을 전달하면 됩니다.

주요 특징

  • 반환값: 시간이 더해진 새로운 DateTimeOffset 객체
  • 음수 값을 입력하면 시간이 차감됩니다.
  • 결과가 표현 가능한 범위(MinValue ~ MaxValue)를 벗어나면 ArgumentOutOfRangeException이 발생합니다.

예제 1 – 시간 더하기

다음은 DateTimeOffset.AddHours() 메서드를 사용하여 시간을 더하는 예제입니다.

using System;
public class Demo {
   public static void Main() {
      DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 10, 10, 3, 15, 0, new TimeSpan(-5, 0, 0));
      Console.WriteLine("DateTimeOffset (before adding hours) = {0}", dateTimeOffset);
      DateTimeOffset res = dateTimeOffset.AddHours(4);
      Console.WriteLine("DateTimeOffset (after adding hours) = {0}", res);
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DateTimeOffset (before adding hours) = 10/10/2019 3:15:00 AM -05:00
DateTimeOffset (after adding hours) = 10/10/2019 7:15:00 AM -05:00

실행 결과를 보면 오전 3시 15분에 4시간이 더해져 오전 7시 15분으로 변경된 것을 확인할 수 있습니다. UTC 오프셋(-05:00)은 그대로 유지됩니다.

예제 2 – 시간 빼기 (음수 값 활용)

AddHours() 메서드에 음수 값을 전달하면 시간을 뺄 수 있습니다. 아래 예제에서는 2시간을 차감해 보겠습니다.

using System;
public class Demo {
   public static void Main() {
      DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 11, 10, 3, 15, 0, new TimeSpan(-5, 0, 0));
      Console.WriteLine("DateTimeOffset (before subtracting hours) = {0}", dateTimeOffset);
      DateTimeOffset res = dateTimeOffset.AddHours(-2);
      Console.WriteLine("DateTimeOffset (after subtracting hours) = {0}", res);
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DateTimeOffset (before subtracting hours) = 11/10/2019 3:15:00 AM -05:00
DateTimeOffset (after subtracting hours) = 11/10/2019 1:15:00 AM -05:00

오전 3시 15분에서 2시간이 빠져 오전 1시 15분으로 계산된 것을 확인할 수 있습니다.

정리

DateTimeOffset.AddHours() 메서드는 날짜와 시간에 시간 단위 연산을 수행할 때 유용하게 사용됩니다. 양수로 시간을 더하고, 음수로 시간을 뺄 수 있으며, UTC 오프셋 정보는 그대로 보존됩니다. 다만 원본 인스턴스는 변경되지 않으므로, 결과값을 반드시 새 변수에 할당하여 사용해야 한다는 점을 기억하세요.