답변:
다음 예제는이를 수행하는 방법을 보여줍니다.
DateTime a = new DateTime(2010, 05, 12, 13, 15, 00);
DateTime b = new DateTime(2010, 05, 12, 13, 45, 00);
Console.WriteLine(b.Subtract(a).TotalMinutes);
실행하면 날짜 / 시간간에 30 분의 차이가 있으므로 "30"이 인쇄됩니다.
결과 는 다른 유용한 속성을 제공 DateTime.Subtract(DateTime x)
하는 TimeSpan 객체 입니다.
TotalMinutes
! (안 Minutes
)
당신은 TimeSpan
구조체를 원합니다 :
TimeSpan diff = dateTime1 - dateTime2;
TimeSpan 객체는 양수 또는 음수 일,시, 분, 초 및 초 단위로 측정되는 시간 간격 (시간 또는 경과 시간)을 나타냅니다. TimeSpan 구조는 또한 시간이 특정 날짜와 관련이없는 경우에만 시간을 나타내는 데 사용될 수 있습니다.
이 구조에서 일,시, 분, 초 및 밀리 초를 되찾기위한 다양한 방법이 있습니다.
차이점에 관심이 있다면 :
TimeSpan diff = Math.Abs(dateTime1 - dateTime2);
순서에 관계없이 시간 사이에 긍정적 인 차이를 줄 것입니다.
시간 구성 요소를 얻었지만 자정별로 시간을 나눌 수있는 경우 실제 차이를 얻으려면 범위에 24 시간을 추가해야합니다.
TimeSpan diff = dateTime1 - dateTime2;
if (diff < 0)
{
diff = diff + TimeSpan.FromDays(1);
}
var startDate = new DateTime(2007, 3, 24);
var endDate = new DateTime(2009, 6, 26);
var dateDiff = endDate.Subtract(startDate);
var date = string.Format("{0} years {1} months {2} days", (int)dateDiff.TotalDays / 365,
(int)(dateDiff.TotalDays % 365) / 30, (int)(dateDiff.TotalDays % 365) / 30);
Console.WriteLine(date);
Console.WriteLine((a - b).ToString(@"hh\:mm\:ss"))
. 참조 : MSDN Custom TimeSpan 형식