C#의 DateTime.AddDays() 메서드는 현재 DateTime 인스턴스 값에 지정한 일수를 더하는 데 사용됩니다. 이 메서드는 원본 값을 변경하지 않고 새로운 DateTime 객체를 반환합니다.
문법(Syntax)
AddDays() 메서드의 기본 문법은 다음과 같습니다.
public DateTime AddDays (double days);
매개변수 days에는 더할 일수를 지정합니다. 참고로 이 매개변수는 double 형식이므로 소수점 단위(예: 1.5일)도 입력할 수 있으며, 음수 값을 전달하면 날짜에서 해당 일수만큼 빼기 연산이 가능합니다.
사용 예제 1
다음은 DateTime.AddDays() 메서드를 사용하여 특정 날짜에 25일을 더하는 예제입니다.
using System;
public class Demo {
public static void Main(){
DateTime d1 = new DateTime(2019, 11, 2, 8, 0, 15);
DateTime d2 = d1.AddDays(25);
System.Console.WriteLine("Initial DateTime = {0:y} {0:dd}", d1);
System.Console.WriteLine("
New DateTime (After adding days) = {0:y} {0:dd}", d2);
}
}출력 결과
Initial DateTime = November 2019 02 New DateTime (After adding days) = November 2019 27
위 실행 결과를 보면 초기 날짜인 2019년 11월 2일에 25일이 더해져 같은 달인 11월 27일이 된 것을 확인할 수 있습니다.
사용 예제 2
이번에는 DateTime.MinValue(표현 가능한 가장 작은 날짜 값)에 150일을 더하는 예제입니다.
using System;
public class Demo {
public static void Main(){
DateTime d1 = DateTime.MinValue;
DateTime d2 = d1.AddDays(150);
System.Console.WriteLine("Initial DateTime = {0:y} {0:dd}", d1);
System.Console.WriteLine("
New DateTime (After adding days) = {0:y} {0:dd}", d2);
}
}출력 결과
Initial DateTime = January 0001 01 New DateTime (After adding days) = May 0001 31
DateTime.MinValue는 0001년 1월 1일을 나타내며, 여기에 150일을 더하면 윤년 계산까지 자동으로 반영되어 0001년 5월 31일이 출력됩니다. 이처럼 AddDays() 메서드는 월과 년도가 바뀌는 경우에도 정확하게 처리해 줍니다.
정리
- AddDays()는 원본 DateTime 값을 수정하지 않고 새로운 DateTime 객체를 반환합니다.
- double 형식 매개변수를 받으므로 음수 또는 소수값 사용이 가능합니다.
- 월·년 경계 및 윤년 등 달력 규칙을 자동으로 처리합니다.