C# - 두 날짜/시간 비교, DateTime.Compare()

두개의 DateTime의 날짜/시간 순서를 비교하는 방법을 소개합니다. 어떤 날짜가 시간상 앞, 뒤 또는 같은지 비교할 수 있습니다.

1. DateTime.Compare()를 이용한 방법

DateTime.Compare(datetime1, datetime2)은 인자로 전달된 두 DateTime의 날짜/시간을 비교하여 아래와 같은 결과를 리턴합니다.

  • 0보다 작은 수 : datetime1이 datetime2보다 이전
  • 0 : datetime1과 datetime2이 같음
  • 0보다 큰 수 : datetime1이 datetime2보다 나중

아래와 같이 위 3가지 케이스를 모두 확인해볼 수 있습니다.

namespace Example {
    public class Program {
        public static void compare(DateTime date1, DateTime date2) {
            int result = DateTime.Compare(date1, date2);
            if (result < 0) {
                Console.WriteLine("{0} is earlier than {1}", date1, date2);
            } else if (result == 0) {
                Console.WriteLine("{0} is the same as {1}", date1, date2);
            } else {
                Console.WriteLine("{0} is later than {1}", date1, date2);
            }
        }
        public static void Main(string[] args) {

            DateTime date1 = DateTime.Now;
            DateTime date2 = date1;
            DateTime date3 = date1.AddDays(1);

            compare(date1, date2);
            compare(date1, date3);
            compare(date3, date1);
        }
    }
}

Output:

12/10/2022 5:03:23 PM is the same as 12/10/2022 5:03:23 PM
12/10/2022 5:03:23 PM is earlier than 12/11/2022 5:03:23 PM
12/11/2022 5:03:23 PM is later than 12/10/2022 5:03:23 PM

2. >, <, == 연산자를 이용한 방법

DateTime.Compare()를 사용하지 않고, >, <, ==의 연산자를 사용하여 DateTime의 날짜/시간 순서를 비교할 수 있습니다.

아래 예제는 DateTime.Compare() 대신에 >, <, ==를 사용하여 비교하였습니다.

namespace Example {
    public class Program {
        public static void compare(DateTime date1, DateTime date2) {
            if (date1 < date2) {
                Console.WriteLine("{0} is earlier than {1}", date1, date2);
            } else if (date1 == date2) {
                Console.WriteLine("{0} is the same as {1}", date1, date2);
            } else {
                Console.WriteLine("{0} is later than {1}", date1, date2);
            }
        }
        public static void Main(string[] args) {

            DateTime date1 = DateTime.Now;
            DateTime date2 = date1;
            DateTime date3 = date1.AddDays(1);

            compare(date1, date2);
            compare(date1, date3);
            compare(date3, date1);
        }
    }
}

Output:

12/10/2022 5:08:48 PM is the same as 12/10/2022 5:08:48 PM
12/10/2022 5:08:48 PM is earlier than 12/11/2022 5:08:48 PM
12/11/2022 5:08:48 PM is later than 12/10/2022 5:08:48 PM
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha