2011-10-28 2 views
3

저는 학생들이 방에서 시험을 보는 곳에서 일합니다. 각 학생의 퇴장 시간은 게시판에 기록되어 있으며, 시간이 끝나면 나도 잊지 말아야합니다.Java에서 여러 이벤트를 추적하는 타이머를 프로그래밍하는 방법은 무엇입니까?

그래서 종료 시간을 입력하고 이후 종료 시간에 도달 할 때까지 현재 시간을 추적 할 수있는 자바 프로그램을 작성하고 싶습니다.

내 문제 :

  1. 는 어떤 데이터의 가장 좋은 형태는 이러한 작업을 위해 사용하는 것입니다? 현재로서는 날짜와 캘린더 모두를보고 있습니다. 최악은 최악의 경우이지만, "2:43 PM"과 같은 원시 입력 시간을 얻고이를 밀리 초로 변환하고 Java 시스템의 현재 시간 방법에 따라 측정하는 방법을 알아낼 것입니다.

  2. 여러 학생 입력을 동시에 입력 할 수 있기를 원합니다. 내가 어떻게 그럴 수 있니? 내가 생각한 방식으로 프로그램을 계속 실행하는 루프가 필요하지만 동시에 currentTime < 종료 시간을 확인해야합니다. 그 일을하는 가장 좋은 방법은 무엇입니까? 지금부터는 종료 시간 배열을 생각하고 일종의 루프에서 각 요소를 현재 시간과 체계적으로 비교하고 하나의 종료에 도달하면 배열에서 제거되고 메시지가 표시됩니다.

이 루프는 상수 비교에서 리소스를 차지하지 않도록 대기 기능이 있기 때문에 매분마다 실행됩니다.

모든 조언을 주시면 감사하겠습니다.

답변

1

Java.util.Timer 및 TimerTask는 기존 기능을 재현하지 않으므로 염두에 두어야합니다.

1

가장 쉬운 방법은 이름과 종료 시간을 가진 학생 목록을 유지하는 것입니다.

시계의 모든 "진드기"는 현재 시간이> = 각 학생의 종료 시간인지 확인합니다.

그렇다면 "만료 된"학생의 이름을 출력하고 목록에서 삭제하거나 더 이상 선택하지 않도록 "만료 됨"으로 표시하십시오.

반복 중에 학생을 추가하지 않기 위해 목록을 동기화하고 싶지만 이벤트 루프가 매우 빠르게 발생하므로 심각한 문제는 아닙니다.

나는 @ madth3와 동의한다; 간단하게 기존 메커니즘을 사용하십시오.

관련 문제