DateTime
C #을 사용하여 두 객체 의 시간 차이를 어떻게 알 수 있습니까?
답변
다음 예제는이를 수행하는 방법을 보여줍니다.
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);