C#에서는 DateTime 객체끼리 빼기 연산을 수행하면 그 결과로 TimeSpan 객체가 반환됩니다. 이 TimeSpan 객체의 TotalSeconds 속성을 사용하면 두 날짜(시각) 사이의 차이를 초 단위로 손쉽게 구할 수 있습니다.
1. 두 날짜 설정하기
먼저 비교할 두 개의 날짜를 생성합니다. 아래 예제에서는 시, 분, 초까지 포함하여 설정했습니다.
DateTime date1 = new DateTime(2018, 7, 15, 08, 15, 20); DateTime date2 = new DateTime(2018, 7, 15, 11, 14, 25);
2. 날짜 차이 계산하기
두 DateTime 객체를 빼면 TimeSpan 타입의 결과가 얻어집니다.
TimeSpan ts = date2 - date1;
이후 TotalSeconds 속성을 호출하면 두 날짜의 차이가 초 단위(double 형식)로 반환됩니다.
ts.TotalSeconds
참고:
TotalSeconds는 정수 부분만이 아니라 밀리초까지 포함한 전체 초를 double 값으로 반환합니다. 반면Seconds속성은 TimeSpan 내 '초' 성분(0~59)만 반환하므로, 총 차이를 구할 때는 반드시TotalSeconds를 사용해야 합니다.
전체 예제 코드
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, 7, 15, 11, 14, 25);
TimeSpan ts = date2 - date1;
Console.WriteLine("초 단위 차이 = {0}", ts.TotalSeconds);
}
}출력 결과
초 단위 차이 = 10745
08시 15분 20초부터 11시 14분 25초까지의 경과 시간은 약 2시간 59분 5초이며, 이를 초로 환산하면 10,745초가 됩니다. 이처럼 C#에서는 DateTime과 TimeSpan만으로도 날짜·시간 연산을 매우 간단하게 처리할 수 있습니다.