2011-02-23 64 views
0

我想实现一个项目,在每次登录时都检查系统时间。 如果我进入办公室并登录系统,我应该得到时间以及何时离开休息一下,我只是锁定我的电脑,然后在那个时候停下来,再次登录时应该开始。如何测量登录时的时间

基本上它应该显示我在计算机/ PC上登录的总时间。

+1

而你想在Java中做到这一点? – adarshr 2011-02-23 15:18:56

+0

以'System.currentTimeMillis()'或http://www.dice.com开始。 – 2011-02-23 15:19:05

+2

但TBH,我不觉得Java很适合这个目的。我建议切换到诸如C#这样的语言,它允许您访问系统级别的API。 – adarshr 2011-02-23 15:30:42

回答

0

您可以使用System.currentTimeMillis()(或System.nanoTime())作为开始和结束,然后计算差异。

这会给你开始/关闭Java的时间。将其链接到系统启动/系统关闭可以通过在启动时启动应用程序来完成。但这取决于操作系统。

+1

这可能是测量时间的方法,但是如何检测Java中的机器登录事件? – adarshr 2011-02-23 15:19:35

+0

@adarshr更新了答案以包含其他信息。 – Bozho 2011-02-23 15:32:02

0

在java中,你可以通过几种方式获得时间。它们中的两个是:

  • 实例化了新的日期对象: 日期数值指明MyDate =新日期();

  • 使用: System.currentTimeMillis的()

+0

非常感谢回复。我是Java新手。我应该在批处理文件中写些什么?我创建了一个输出当前时间的java类文件,所以我需要在批处理文件中写入以及如何进行核对?请回答。 – pooh 2011-02-24 09:30:49

0

我想你应该考虑使用一个专用于该软件,而不是在Java中实现这一点。

0

你可以做的是这样的:

  1. 创建一个Java应用程序,可以 登录时间的地方,使用 System.currentTimeMillis()new Date()方法。

  2. 在Windows中创建 ,每次运行用户锁定,解锁 ,登录和注销 系统计划任务。这个计划任务应该运行你的应用程序 。它应该是 与调用批处理文件 一样简单,然后调用您的Java 应用程序。

  3. 应用程序应该使用捕获的所有 时间来计算 有效时间。

+0

虽然这应该可行,但使用可以访问系统API的C或C++(如果.NET有足够的库,也可以工作,但对此不了解)听起来工作量少得多,特别是考虑到实际逻辑(启动/停止定时器)非常简单。 – Voo 2011-02-23 15:43:44

+0

我第二。事实上,这正是我在主要问题的评论部分更新的内容。 – adarshr 2011-02-23 16:02:03

+0

非常感谢回复。我是Java新手。我应该在批处理文件中写些什么?我创建了一个输出当前时间的java类文件,所以我需要在批处理文件中写入以及如何进行核对?请回答。 – pooh 2011-02-24 09:28:15