如何编写一个跟踪Java中多个事件的计时器?

时间:2011-10-28 00:20:05

标签: java events timer clock

我在学生在房间里进行测试的地方工作。每个学生的退出时间都在董事会上注明,我必须记得在他们的时间到了之后得到他们。

所以我想编写一个Java程序,允许我输入一个退出时间,然后跟踪当前时间,直到它到达未来的退出时间。

我的问题:

  1. 用于此类任务的最佳数据类型是什么?截至目前,我正在查看日期和日历。最糟糕的是,我会找出一些方法来获得像“2:43 PM”这样的原始输入时间并将其转换为毫秒,并根据Java系统当前的时间方法进行测量。

    < / LI>
  2. 我希望能够输入多个学生条目,并让它们同时进行计时。我该怎么办?因为我的方式,你需要一个循环来保持程序运行,但同时确保currentTime&lt;任何退出时间。这样做的最佳方式是什么?到目前为止,我正在考虑有一个退出时间数组,只是系统地将每个元素与某种循环中的当前时间进行比较,当达到一个出口时,它将从数组中删除并显示一条消息。

  3. 这个循环会每分钟运行一次,因为我会有一些等待函数来防止在不断的比较中占用资源。

    任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

考虑Java.util.Timer和TimerTask以避免重新创建现有功能。

答案 1 :(得分:1)

最简单的方法是保留一份学生名单,每名学生都有一个名字和退出时间。

时钟的每个“勾号”,检查当前时间是否> =每个学生的退出时间。

如果是这样,请打印出“过期”学生的姓名,并将其从列表中删除,或将其标记为“已过期”,以便不再检查这些名称。

您希望同步该列表,这样您就不会在迭代期间添加学生,但事件循环会很快发生,所以这根本不应该是一个严重的问题。

我同意@ madth3;只需使用现有机制就可以做到这一点。