[c#] 두 시간의 차이를 초 단위로 확인

안녕하세요, 저는 현재 특정 이벤트가 발생할 때 이벤트가 발생한 시간을 포함하여 이벤트에 대한 세부 정보가 목록 배열에 추가되는 프로젝트에서 일하고 있습니다.

메소드가 완료되면 값을 확인하는 다른 메소드로 목록을 전달합니다. 루프를 진행하기 전에 PC의 현재 시간을 확인하고 목록 배열에 저장된 시간과 현재 시간의 차이가 5 초 이상인지 확인해야합니다.

이 일을 어떻게할까요?



답변

가정 dateTime1하고 값은 다음 과 dateTime2같습니다 DateTime.

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

귀하의 경우 DateTime.Now에는 값 중 하나로 사용 하고 목록의 시간을 다른 것으로 사용합니다. dateTime1이보다 이전 이면 결과가 음수 일 수 있으므로 순서에주의하십시오 dateTime2.


답변

DateTime에는 이러한 경우에 Subtract 메서드오버로드 된 -연산자 가 있습니다.

DateTime now = DateTime.UtcNow;
TimeSpan difference = now.Subtract(otherTime); // could also write `now - otherTime`
if (difference.TotalSeconds > 5) { ... }


답변

이 버전은 항상 초 수 차이를 양수로 반환합니다 (@freedeveloper의 솔루션과 동일한 결과).

var seconds = System.Math.Abs((date1 - date2).TotalSeconds);


답변

음의 간격을 피하기 위해 이것을 사용합니다.

var seconds = (date1< date2)? (date2- date1).TotalSeconds: (date1 - date2).TotalSeconds;


답변