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

C# DateTimeOffset.Add() 메서드 완벽 가이드: 시간 간격 더하기

C#의 DateTimeOffset.Add() 메서드는 현재 인스턴스가 나타내는 날짜 및 시간 값에 지정된 시간 간격(TimeSpan)을 더한 결과를 새로운 DateTimeOffset 개체로 반환합니다. 이 메서드는 원본 개체를 수정하지 않고 새 개체를 생성하기 때문에, 기존 날짜 데이터를 유지하면서 안전하게 시간 계산을 수행할 수 있습니다.

구문

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

public DateTimeOffset Add (TimeSpan t);

매개변수 t는 더할 시간 간격을 나타내며, TimeSpan 형식입니다. 만약 연산 결과가 표현 가능한 최소값(MinValue) 또는 최대값(MaxValue) 범위를 벗어나면 ArgumentOutOfRangeException이 발생할 수 있습니다.

예제 1: 특정 시간 간격 더하기

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

using System;
public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 10, 10, 9, 45, 20, new TimeSpan(-10, 0, 0));
        TimeSpan ts = new TimeSpan(20, 0, 0);
        DateTimeOffset res = dateTimeOffset.Add(ts);
        Console.WriteLine("DateTimeOffset = {0}", res);
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력이 표시됩니다.

DateTimeOffset = 10/11/2019 5:45:20 AM -10:00

2019년 10월 10일 오전 9시 45분 20초에서 20시간을 더했기 때문에, 결과적으로 2019년 10월 11일 오전 5시 45분 20초가 된 것을 확인할 수 있습니다.

예제 2: MinValue에 시간 더하기

이번에는 DateTimeOffset.MinValue에 시간 간격을 더하는 예제입니다.

using System;
public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = DateTimeOffset.MinValue;
        TimeSpan ts = new TimeSpan(20, 0, 0);
        DateTimeOffset res = dateTimeOffset.Add(ts);
        Console.WriteLine("DateTimeOffset = {0}", res);
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력이 표시됩니다.

DateTimeOffset = 1/1/0001 8:00:00 PM +00:00

함께 알아두면 좋은 관련 메서드

DateTimeOffset 구조체는 Add() 외에도 다양한 시간 단위별 편의 메서드를 제공합니다.

  • AddDays(): 지정된 일 수를 더합니다.
  • AddHours(): 지정된 시간 수를 더합니다.
  • AddMinutes(): 지정된 분 수를 더합니다.
  • AddSeconds(): 지정된 초 수를 더합니다.
  • Subtract(): 지정된 시간 간격 또는 DateTimeOffset 값을 뺍니다.

특정 단위로 간단히 더할 때는 위의 전용 메서드를 사용하고, 복합적인 시간 간격(예: 1일 3시간 30분)을 다룰 때는 TimeSpan 객체와 함께 Add() 메서드를 활용하는 것이 좋습니다.