두 시간의 차이를 초 단위로 확인


100

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

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

이 일을 어떻게할까요?

답변:


264

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

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

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


3
그건

3
고마워요 ... 정말 (TotalMilliseconds)를 사용해야하는데 실수로 (Milliseconds)를 사용하여 물 렸습니다. 아야.
앤드류 페이트


15

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

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

4

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

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

4
Math.Abs대신 사용하십시오 .이 코드는 위의 답변을 사용하는 것보다 읽기 쉽고 성능이 떨어집니다.
ProgramFast
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.