C#에서 두 날짜 사이의 시간 차이를 구하려면 DateTime 객체와 TimeSpan 구조체를 활용하면 됩니다. 두 DateTime 값을 서로 빼면 그 결과로 TimeSpan 객체가 반환되며, 이를 통해 일, 시간, 분 등 다양한 단위의 차이를 손쉽게 확인할 수 있습니다.
두 날짜 설정하기
먼저 비교할 두 개의 날짜를 설정합니다.
DateTime date1 = new DateTime(2018, 7, 15, 08, 15, 20); DateTime date2 = new DateTime(2018, 8, 17, 11, 14, 25);
날짜 차이 계산하기
두 날짜를 빼면 그 차이가 담긴 TimeSpan 객체가 생성됩니다.
TimeSpan ts = date2 - date1;
이제 시간 단위의 차이를 구해 보겠습니다. TotalHours 속성을 사용하면 전체 시간 차이를 확인할 수 있습니다.
ts.TotalHours
전체 예제 코드
using System;
using System.Linq;
public class Demo {
public static void Main() {
DateTime date1 = new DateTime(2018, 7, 15, 08, 15, 20);
DateTime date2 = new DateTime(2018, 8, 17, 11, 14, 25);
TimeSpan ts = date2 - date1;
Console.WriteLine("No. of Hours (Difference) = {0}", ts.TotalHours);
}
}실행 결과
No. of Hours (Difference) = 794.984722222222
참고 사항
TotalHours는 전체 시간 차이를 소수점까지 포함한 double 타입으로 반환합니다. 정수 부분만 필요하다면 (int)ts.TotalHours처럼 캐스팅하거나 Math.Floor() 메서드를 활용할 수 있습니다. 또한 ts.Hours 속성은 전체 차이 중 일(day) 단위를 제외한 나머지 시간만 반환한다는 점에 유의하세요. 예를 들어 33시간 차이일 때 Hours는 9를 반환하고, TotalHours는 33을 반환합니다.