Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# DateTime 클래스 완벽 정리: 날짜·시간 표현부터 날짜 비교까지

C#의 DateTime 클래스는 프로그램 내에서 날짜와 시간을 표현하고 조작할 때 사용하는 기본적인 구조체입니다. 현재 시각 조회, 특정 날짜 생성, 날짜 간 비교 등 실무에서 자주 쓰이는 다양한 기능을 제공합니다.

DateTime 클래스의 주요 속성

DateTime 클래스는 아래와 같은 대표적인 속성들을 통해 날짜와 시간 정보에 접근할 수 있습니다.

번호속성 및 설명
1Date
시간 정보가 제외된 날짜 구성 요소를 반환합니다.
2Day
해당 월의 일(day) 값을 반환합니다.
3Hour
시간(hour) 구성 요소를 반환합니다.
4Minute
분(minute) 구성 요소를 반환합니다.
5Month
월(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() 메서드나 비교 연산자를 활용하면 날짜 순서 검증, 기간 계산, 유효일 체크 등 다양한 로직을 간결하게 구현할 수 있습니다.