C #을 사용하여 두 DateTime 객체의 시간 차이를 어떻게 얻습니까? 두 객체

DateTimeC #을 사용하여 두 객체 의 시간 차이를 어떻게 알 수 있습니까?



답변

다음 예제는이를 수행하는 방법을 보여줍니다.

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 객체 입니다.


답변

당신은 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);
}


답변

필요한 것은 TimeSpan 을 반환하는 DateTime 클래스 Subtract 메서드 를 사용하는 것 입니다.

var dateOne = DateTime.Now;
var dateTwo = DateTime.Now.AddMinutes(-5);
var diff = dateTwo.Subtract(dateOne);
var res = String.Format("{0}:{1}:{2}", diff.Hours,diff.Minutes,diff.Seconds));


답변

내가 일반적으로하는 방법은 두 개의 DateTime을 빼는 것이므로 diff를 알려주는 TimeSpan을 얻습니다.

예를 들면 다음과 같습니다.

DateTime start = DateTime.Now;
// Do some work
TimeSpan timeDiff = DateTime.Now - start;
timeDiff.TotalMilliseconds;


답변

둘 다 UTC 날짜-시간 값이면 할 수 있습니다 TimeSpan diff = dateTime1 - dateTime2;

그렇지 않으면 가능한 모든 경우에 정답을 얻을 수있는 기회는 0입니다.


답변

 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);


답변

TimeSpan 을 사용해야합니다 . 샘플 코드는 다음과 같습니다.

TimeSpan sincelast = TimeSpan.FromTicks(DateTime.Now.Ticks - LastUpdate.Ticks);