C#의 DateTime.Add() 메서드는 현재 DateTime 인스턴스에 지정된 TimeSpan 값을 더한 결과로 새로운 DateTime 객체를 반환합니다. 이 메서드는 원본 DateTime 객체를 변경하지 않고 항상 새로운 객체를 생성해 반환한다는 점이 특징입니다.
구문
DateTime.Add() 메서드의 기본 구문은 다음과 같습니다.
public DateTime Add(TimeSpan val);
매개변수: val은 더할 시간 간격(TimeSpan)을 나타내며, 양수 또는 음수 값을 가질 수 있습니다. 양수를 전달하면 미래 날짜가, 음수를 전달하면 과거 날짜가 계산됩니다.
예제 1: TimeSpan으로 날짜 더하기
다음 예제는 DateTime.Add() 메서드를 사용해 115일을 더하는 방법을 보여줍니다.
using System;
public class Demo {
public static void Main() {
DateTime d1 = new DateTime(2019, 3, 7, 8, 0, 15);
TimeSpan span = new TimeSpan(115, 0, 0, 0);
DateTime d2 = d1.Add(span);
System.Console.WriteLine("Initial DateTime = {0:y} {0:dd}", d1);
System.Console.WriteLine("\nNew DateTime = {0:y} {0:dd}", d2);
}
}출력 결과
Initial DateTime = March 2019 07 New DateTime = June 2019 30
실행 결과에서 볼 수 있듯이, 2019년 3월 7일에 115일을 더하면 2019년 6월 30일이 됩니다.
예제 2: 음수 TimeSpan으로 날짜 빼기
음수 TimeSpan 값을 전달하면 지정한 기간만큼 날짜를 뺄 수도 있습니다. 다음 예제에서는 75일을 빼는 방법을 살펴봅니다.
using System;
public class Demo {
public static void Main() {
DateTime d1 = new DateTime(2019, 9, 7, 8, 0, 15);
// 75일 빼기
TimeSpan span = new TimeSpan(-75, 0, 0, 0);
DateTime d2 = d1.Add(span);
System.Console.WriteLine("Initial DateTime = {0:y} {0:dd}", d1);
System.Console.WriteLine("\nNew DateTime = {0:y} {0:dd}", d2);
}
}출력 결과
Initial DateTime = September 2019 07 New DateTime = June 2019 24
2019년 9월 7일에서 75일을 빼면 2019년 6월 24일이 됩니다.
참고 사항
DateTime.Add() 메서드는 일 단위뿐만 아니라 시, 분, 초, 밀리초 단위의 TimeSpan도 처리할 수 있습니다. 다만 계산 결과가 DateTime.MinValue 또는 DateTime.MaxValue 범위를 벗어나면 ArgumentOutOfRangeException이 발생하므로 주의해야 합니다.