C#의 DateTime 클래스는 프로그램 내에서 날짜와 시간을 표현하고 조작할 때 사용하는 기본적인 구조체입니다. 현재 시각 조회, 특정 날짜 생성, 날짜 간 비교 등 실무에서 자주 쓰이는 다양한 기능을 제공합니다.
DateTime 클래스의 주요 속성
DateTime 클래스는 아래와 같은 대표적인 속성들을 통해 날짜와 시간 정보에 접근할 수 있습니다.
| 번호 | 속성 및 설명 |
|---|---|
| 1 | Date 시간 정보가 제외된 날짜 구성 요소를 반환합니다. |
| 2 | Day 해당 월의 일(day) 값을 반환합니다. |
| 3 | Hour 시간(hour) 구성 요소를 반환합니다. |
| 4 | Minute 분(minute) 구성 요소를 반환합니다. |
| 5 | Month 월(month) 구성 요소를 반환합니다. |
그 외에도 초(Second)를 반환하는 Second, 밀리초를 반환하는 Millisecond, 요일을 반환하는 DayOfWeek, 연도를 반환하는 Year 등의 속성도 자주 활용됩니다.
C#에서 두 날짜 비교하기
C#에서 날짜를 비교하려면 먼저 DateTime 객체를 사용해 비교 대상이 될 두 개의 날짜를 생성해야 합니다. 이번 예제에서는 2018년 7월의 서로 다른 두 날짜를 만들어 보겠습니다.
첫 번째 날짜 생성
DateTime date1 = new DateTime(2018, 07, 20);
Console.WriteLine("Date 1 : {0}", date1);
두 번째 날짜 생성
DateTime date2 = new DateTime(2018, 07, 25);
Console.WriteLine("Date 2 : {0}", date2);
DateTime은 비교 연산자(<, >, == 등)를 직접 지원하기 때문에, 별도의 메서드 호출 없이 조건문만으로 두 날짜의 선후 관계를 손쉽게 판별할 수 있습니다.
전체 예제 코드
using System;
namespace Program {
class Demo {
static int Main() {
DateTime date1 = new DateTime(2018, 07, 20);
Console.WriteLine("Date 1 : {0}", date1);
DateTime date2 = new DateTime(2018, 07, 25);
Console.WriteLine("Date 2 : {0}", date2);
if (date1 < date2)
Console.WriteLine("{0} comes before {1}", date1, date2);
Console.Read();
return 0;
}
}
}
실행 결과
Date 1 : 7/20/2018 12:00:00 AM Date 2 : 7/25/2018 12:00:00 AM 7/20/2018 12:00:00 AM comes before 7/25/2018 12:00:00 AM
위 실행 결과에서 확인할 수 있듯이, date1(7월 20일)이 date2(7월 25일)보다 앞선 날짜이므로 조건문이 참이 되어 해당 문장이 출력됩니다. 이처럼 CompareTo() 메서드나 비교 연산자를 활용하면 날짜 순서 검증, 기간 계산, 유효일 체크 등 다양한 로직을 간결하게 구현할 수 있습니다.