C#에서 두 날짜를 비교하려면 먼저 DateTime 객체를 사용해 비교 대상이 되는 두 개의 날짜를 설정해야 합니다. C#의 DateTime 클래스는 날짜와 시간을 다루는 기본 자료형으로, 관계 연산자만으로도 손쉽게 날짜 비교가 가능합니다.
첫 번째 날짜 설정
DateTime 생성자에 연도, 월, 일을 순서대로 전달하여 첫 번째 날짜를 만듭니다.
DateTime date1 = new DateTime(2018, 08, 05);
Console.WriteLine("Date 1 : {0}", date1);두 번째 날짜 설정
같은 방식으로 비교할 두 번째 날짜를 생성합니다.
DateTime date2 = new DateTime(2018, 08, 07);
Console.WriteLine("Date 2 : {0}", date2);날짜 비교하기
DateTime 객체는 <, >, == 같은 관계 연산자를 직접 지원합니다. 따라서 if 문 안에서 두 날짜를 바로 비교할 수 있으며, 아래 예제에서는 date1이 date2보다 앞선 날짜인지 검사하고 있습니다.
전체 예제 코드
using System;
namespace Program {
class Demo {
static int Main() {
DateTime date1 = new DateTime(2018, 08, 05);
Console.WriteLine("Date 1 : {0}", date1);
DateTime date2 = new DateTime(2018, 08, 07);
Console.WriteLine("Date 2 : {0}", date2);
if (date1 < date2)
Console.WriteLine("{0} comes before {1}", date1, date2);
Console.Read();
return 0;
}
}
}실행 결과
Date 1 : 2018-08-05 오전 12:00:00 Date 2 : 2018-08-07 오전 12:00:00 2018-08-05 오전 12:00:00 comes before 2018-08-07 오전 12:00:00
추가 팁: CompareTo와 DateTime.Compare 활용
관계 연산자 외에도 날짜 비교에 유용한 메서드들이 있습니다.
- CompareTo(): 두 날짜를 비교하여 음수(앞선 날짜), 0(동일), 양수(뒤늦은 날짜)를 반환합니다.
- DateTime.Compare(t1, t2): 정적 메서드로, 두 DateTime 값의 상대적 순서를 정수로 반환합니다.
int result = DateTime.Compare(date1, date2);
if (result < 0)
Console.WriteLine("date1이 더 빠른 날짜입니다.");
else if (result == 0)
Console.WriteLine("두 날짜가 동일합니다.");
else
Console.WriteLine("date2가 더 빠른 날짜입니다.");이처럼 C#에서는 DateTime 클래스를 활용해 간단한 연산자 비교부터 메서드 기반 비교까지 다양한 방식으로 날짜를 처리할 수 있습니다.