C#

DateTime 비교하기

DeFo 2020. 5. 30. 17:29
실행 환경
OS Windows 10 Pro    버전 1903(OS 빌드 18362.836)
Language C#
.NET .NET Framework 4
IDE Visual Studio Community 2017

 

 

DateTime은 날짜와 시간을 나타냅니다.

  • DateTime의 Compare()를 이용하여 두 DateTime의 날짜와 시간을 비교할 수 있습니다.
  • DateTime의 AddYears, AddDays, AddHours 등 ( 당연히 Minutes와 Second도 있겠죠? Milliseconds 도 있습니다.) 을 사용해서 DateTime 값을 변경할 수도 있습니다.
  • ToString()으로 DateTime 타입을 특정 포맷 문자열로 변경할 수 있습니다.
  • 반대로 Convert.ToDateTime 을 이용해 문자열을 DateTime 형태로 변경할 수 있습니다.

 

Compare 은 두 인스턴스를 비교하고 첫 번째 인스턴스가 두 번째 인스턴스보다 빠른지, 같은지, 늦은 지를 나타내는 정수를 반환합니다.

 

t1를 비교할 것 번째 매개변수, t1를 비교할 두 번째 매개변수라 했을 때 Compare 반환 값은 다음과 같습니다.

 

반환 값 조건
-1 t1가 t2보다 이전인 경우
0 t1이 t2와 같은 경우
1 t1이 t2보다 나중인 경우

 

아래 소스는 두 DateTime의 값을 비교한 소스입니다.

 

public void UseDateTime()
{        
	DateTime firstDateTime = DateTime.Now;                 // {2020-05-30 오후 5:05:21}
	DateTime secondDateTime = DateTime.Now.AddDays(1);      // {2020-05-31 오후 5:04:22}
    
	DateTime.Compare(firstDateTime, secondDateTime);        // -1
	DateTime.Compare(Convert.ToDateTime(firstDateTime.ToString("yy-MM-dd")), Convert.ToDateTime("20-05-30")); // 0
	DateTime.Compare(firstDateTime, Convert.ToDateTime("20-05-30"));            // 1;
	DateTime.Compare(firstDateTime, Convert.ToDateTime("2020-05-30T23:00:00")); // -1;
}

 

비교 값이 위에서 확인한 대로 나타나는 것을 볼 수 있습니다. 

 

소스를 구동해 보니 Convert.ToDateTime("20-05-30") 과 같은 형태에서는 {2020-05-30 오전 12:00:00} 의 DateTime 값을 반환합니다.

Convert.ToDateTime 이나 ToString을 사용할 때 날짜만 지정하는 경우 시간은 오전 12:00:00로 지정이 되네요.

날짜만 비교하고 싶어서 두 매개변수를 다 ToString으로 날짜만 입력한 후 비교를 해봤습니다.

 

 

 

내용은 모두 개인 공부 기록 용이기에 부족한 부분이나 내용상 오류가 있을 수도 있습니다.
참고용으로 보시기 바랍니다.
혹 잘못된 내용이 있을 시 댓글 남겨주시면 수정하도록 하겠습니다.