C#의 DateTime.AddYears() 메서드는 현재 DateTime 인스턴스에 지정한 연도 수를 더한 새로운 DateTime 객체를 반환합니다. 원본 인스턴스의 값은 변경되지 않으며, 항상 새로운 DateTime이 만들어진다는 점이 특징입니다.
문법
메서드의 기본 문법은 다음과 같습니다.
public DateTime AddYears(int yrs);
매개변수 yrs에는 더하거나 뺄 연도 수를 정수로 전달합니다. 양수를 입력하면 해당 연도만큼 미래 날짜가 되고, 음수를 입력하면 과거 날짜가 됩니다.
예제 1: 연도 더하기
다음은 DateTime.AddYears() 메서드를 사용해 특정 날짜에 5년을 더하는 예제입니다.
using System;
public class Demo {
public static void Main(){
DateTime d1 = new DateTime(2019, 11, 20, 6, 20, 40);
DateTime d2 = d1.AddYears(5);
Console.WriteLine("Initial DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
Console.WriteLine("New DateTime (added years) = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d2);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Initial DateTime = 20 November 2019, 06:20:40 New DateTime = 20 November 2024, 06:20:40
예제 2: 연도 빼기
음수 값을 전달하면 연도를 뺄 수도 있습니다. 아래 예제에서는 2년을 빼보겠습니다.
using System;
public class Demo {
public static void Main(){
DateTime d1 = new DateTime(2019, 11, 20, 6, 20, 40);
DateTime d2 = d1.AddYears(-2);
Console.WriteLine("Initial DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
Console.WriteLine("New DateTime (subtracting years) = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d2);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Initial DateTime = 20 November 2019, 06:20:40 New DateTime (subtracting years) = 20 November 2017, 06:20:40
참고 사항
- AddYears() 메서드는 윤년을 자동으로 처리합니다. 예를 들어 2020년 2월 29일에 1년을 더하면 2021년 2월 28일이 결과로 반환됩니다.
- DateTime 구조체는 불변(immutable)이므로 AddYears()를 호출한 후에는 반드시 반환값을 변수에 할당해야 변경된 날짜를 사용할 수 있습니다.