2011-02-23 95 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